Referring to the picture below, here are the components for lab 1.
#1 . Sample Application
Sample app representing a simple architecture of a frontend and backend implemented as Docker containers that we will review in this lab.
#2 . Dynatrace monitoring
The Dynatrace OneAgent has been installed by the workshop provisioning scripts and is communicating to your Dynatrace tenant.
#3 . Load generator process
A docker processes that sends simulated user traffic to the sample app using Jmeter run within a Docker container. You will not need to interact with this container; it just runs in the background.
The host running the sample application was created using scripts to install and run the Sample Application and to install the Dynatrace OneAgent. All these scripts you can review here within the provision-scripts
subfolder.
Manage --> Deployment Status
option from the left side menu to open the OneAgent deployment page.dt-orders-monolith
VM is reporting in under OneAgents The sample application is called Dynatrace Orders. A more detailed overview can be found here - https://github.com/dt-orders/overview.
All the source code can be found here - https://github.com/dt-orders
dt-orders-monolith
. You can explore details about this VM, but you will want to copy the public IP as shown below. customer/list.html
customer/5.html
catalog/list.html
catalog/searchForm.html
order/list.html
order/form.html
π« - Please update the Tracking Spreadsheet upon completing this task.
In the next few sections, you will review what the OneAgent automatically discovered for the host, services, processes, and the complete dependency mapping for the sample application.
π How this helps
As you plan your migration, each of these views will give insights into accessing the profile, consumption and dependencies to other systems and services.
Infrastructure -> Hosts
then click on the host with the name dt-orders-monolith
. Properties
section to see data about the host:Enterprises have many hosts, services, and application that are ever changing. The ability to automatically discover and change as the environment changes is a key feature that Smartscape delivers.
Dynatrace's near real-time environment-topology visualization tool, Smartscape, is where Dynatrace's auto-discovery is delivered into a quick and efficient visualization of all the topological dependencies in your infrastructure, processes, and services.
π How this helps
Smartscape shows all the dependencies of a given service. Those include connections to queues, web servers, app servers, and a native process. The host view shows historical and live time-series data for usage as well as the consuming processes. This information allows us to better plan the migration, as all depending services must be considered during the migration.
Referring to the picture above:
dt-orders-monolith
host page...
box on the to the right of the host nameSmartscape view
menu optionIn the Smartscape view, we saw the visualizations of the relationships in vertical stack and as well as the relationships spatially. Now let's view the processes and services running on the host.
As you plan your migration, you need more than just host level metrics. Knowing the details for each service, BEFORE you change it, will lower the risk of impacting the business.
π How this helps
Very quickly you have seen what processes and services are running on a host AND more importantly, what processes and services call (outbound) and are being called (inbound). Having a real-time picture is certainly more accurate than an out of date documentation.
dt-orders-monolith
and locate the Processes Analysis
section on far right hand side of the screen.monolith-frontend
process to open the process detail view. Properties and tags
line to toggle on/off to see additional dataπ Dynatrace automatically recognizes many common processes like Tomcat and will capture process specific metrics such as JVM garbage collection. See a list of supported technologies, languages and containers in the Dynatrace documentation
π`Dynatrace and containers`
In the picture above, the arrow shows the properties for Docker.
Our sample app was built as a Docker container and Dynatrace hooks into containers and provides code for injecting OneAgent into containerized process.
How Dynatrace monitors containers
There's no need to modify your Docker images, modify run commands, or create additional containers to enable Docker monitoring. Simply install OneAgent on your hosts that serve containerized applications and services. Dynatrace automatically detects the creation and termination of containers and monitors the applications and services contained within those containers.
π You can read more about Dynatrace Docker Monitoring here and technical details here
services
square above the host infographic to open the list of servicesfrontend
Properties
line to toggle on/off to see additional dataWeb applications consist of web pages that are served by web servers and web application processes, for example Tomcat. Web and mobile applications are built upon services that process requests like web requests, web service calls, and messaging.
Such "server-side services" can take the form of web services, web containers, database requests, custom services, and more. Services may in turn call other services such as web services, remote services, and databases services.
π How this helps
As you plan your migration, it is important to gain a complete picture of interdependency to the rest of the environment architecture at host, processes, services, application perspectives. Since time is always scarce, being able to do this in a single place can shorten assessment timelines.
Services
left side Dynatrace menu. dt-orders-monolith
. frontend
service.frontend
service page, find the Key Requests/endpoints
section on the right and click the Top web Requests
button to see what it calls. We just saw one way to review process and service communication, but let's look at how Dynatrace understands your applications' transactions from end to end and visualizes through Service Backtraces
and Service flows
.
Service flow
, you see the flow of service calls FROM a service, request, or their filtered subset. Along with the specific services that are triggered, you can also see how each component of a request contributes to the overall response time.Service backtrace
, you see the calls TO a service.π How this helps
Knowing the type of downstream services called, executed statements, and amount of data transferred during regular hours of operation allows for better planning and prioritization.
frontend
service. You can use the breakcrumb
menu as shown below. frontend
service page, locate the Topology
section on the right, and then click the Service Flow
button. backend
databaseDynatrace understands your applications transactions from end to end. This transactional insight is visualized several ways like the backtrace.
The backtrace tree view represents the sequence of services that led to this service call, beginning with the page load or user action in the browser.
π How this helps
Using the service flow and service backtrace, these two tools give you a complete picture of interdependency to the rest of the environment architecture at host, processes, services, application perspectives.
Services
left side Dynatrace menu.backend
service. backend
service, click on the Analyze Backtrace
button. π You should be on the service backtrace page where you will see information for this specific service.
π If you click on any of the rows in the backtrace, the bottom portion of the page will expand.
π This will get more interesting in the next lab, but for the monolith backend, we can see that the backtrace is as follows:
1. The starting point is the `backend`
2. `backend` is called by the `frontend` service
3. `ApacheJMeter` traffic from the load generator script
4. You may also see browser traffic to the **frontend** from the `My web application`. If you don't that is OK.
As you plan your migration, Database observability is critical to a successful plan. Knowing the type of access, executed statements, and amount of data transferred during regular hours of operation allows for better migration planning and prioritization of the move groups. In some cases, you may decide to not migrate this database in favor of other services or databases that are less complex to migrate due to fewer dependencies.
π How this helps
When monitoring database activity, Dynatrace shows you which database statements are executed most often and which statements take up the most time. You can also see which services execute the database statements, what will be direct input to migration planning, and prioritization of the move groups.
Dynatrace monitors all the popular databases like SQL Server, Oracle, and MongoDB. See Dynatrace documentation for more details on platform support.
backend
service. One way is to go back to the Services
left side Dynatrace menu and then pick the backend
service for the dt-orders-monolith
management zone.backend
service page, click on the [embedded]
database under the Topology
section to open the database service page. By default, Dynatrace gives you FullStack horizontal (who talks to whom) and vertical (what runs on what) dependency visibility as part of Dynatrace Smartscape! All without a single line of code or configuration change β just by installing the OneAgent
Seeing which processes make up the monolith has been an eye-opener for many teams that have done this exercise. "Oh β we completely forgot about the dependency to this legacy process we introduced 5 years ago!" β that's a common thing you hear!
As you plan your migration, knowing what technologies make up your eco-system is key so that you can decide whether to migrate, refactor or replace certain services.
The workshop is somewhat limited, so here is an example from another environment.
π How this helps
This is another out the box feature that helps you understand what technologies are in your environment with a heat map presentation that shows to what degree they exist.
All
so that you see everything tag
, choose stage
, and the value of production
. It should look like this: You can always click into the Hub
menu within Dynatrace to learn about the many technologies that Dynatrace supports. This list is in sync and constantly updated in conjunction with the Dynatrace website hub page
By just installing the OneAgent, we have now gained a detailed topological view of sample application from the both the infrastructure and application tiers and we are now ready to tackle our adoption to the cloud armed with the answers we need.
In this section, you should have completed the following:
β Review Dynatrace OneAgent
β Review real-time data now available for the sample application
β Review how Dynatrace helps with modernization planning
π« - Please update the Tracking Spreadsheet upon completing this task.