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.

image

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.

Tasks to complete this step

Review OneAgent Status for Monolith VM

  1. Login into Dynatrace UI
  2. From the left menu, Choose the Apps -> Deployment Status to open the OneAgent deployment app.
  3. Check to ensure the dt-orders-monolith VM is reporting in under OneAgents image

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

Tasks to complete this step

  1. Get the Public IP to the frontend of the Sample Application
    • Open up the Azure Portal and navigate to the Virtual Machine page. You can use the search feature as shown below. image
    • Once on the Virtual Machine page, click on the VM named dt-orders-monolith. You can explore details about this VM, but you will want to copy the public IP as shown below. image
  2. Navigate the Sample app in a Browser
    • To view the application, copy the public IP into a browser. It will look like this: image
    • Use the menu on the home page to navigate around the application and notice the URL for key functionality. You will see these URLs later as we analyze the application.
      • Customer List = customer/list.html
      • Customer Detail - Each customer has a unique page = customer/5.html
      • Catalog List = catalog/list.html
      • Catalog Search Form = catalog/searchForm.html
      • Order List = order/list.html
      • Order Form = order/form.html

In this section, you will review what the OneAgent automatically discovered for the host, services, processes, and the complete dependency mapping for the sample application using the new Infrastructure & Operations app now available on Grail.

Tasks to complete this step

  1. From the left menu, Choose the Apps -> Infrastructure & Operations apps.
  2. On the initial view, you'll see two views one by Datacenters and the other by Hosts.
    • Under the datacenters view you will see the Azure region your VM's are currently deployed in image
  3. Click hosts view and select the dt-orders-monolith VM image
  4. On the Overview tab, you will notice high level cpu, memory, disk usage, etc metrics for the host. At the bottom you'll see properties, tags and ownership data related to this host.

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.

Tasks to complete this step

Review the Data on the Hosts screen

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.

Tasks to complete this step

Review the data on the Smartscape screen

In 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.

Tasks to complete this step

  1. Review the data on the Process screen
    • Return back to the host view for the host with the prefix of dt-orders-monolith and locate the Processes Analysis section on far right hand side of the screen.
    • Click on the 2nd monolith-frontend process to open the process detail view. image
    • You should be on the process page where you will see information for this process. Follow the picture below to locate the following:
      1. Click on the Properties and tags line to toggle on/off to see additional data
      2. Notice the properties such as open ports
      3. On the info graphic:
        • Click to view the processes that call this process (Inbound)
        • Click to view the services that are served by this process. In this case there are multiple
        • Click to view the processes that this process calls (Outbound)
        • Click to view the Process specific metrics
      4. Did you notice Docker?? image
  2. Review the data on the Services screen
    • Now Let's review a specific service.
      1. Click the services square above the host infographic to open the list of services
      2. From the list of services, choose the frontendimage
    • You should be on the service page where you will see information for this specific service. Follow the picture below to locate the following:
      1. Click on the Properties line to toggle on/off to see additional data
      2. Click to view the services that call this service (Inbound)
      3. Click to view the services that this service calls (Outbound) image

Web 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.

Tasks to complete this step

  1. Review the Services being monitored. Let's now take a look at all the services being monitored by selecting Services App from the left side Dynatrace menu. image
    • The services list should now look like this: image
    • Choose the frontend service.
    • On the frontend service page, find the Key Requests/endpoints section on the right and click the Top web Requests button to see what it calls. image
      • On this page you can view the transactions as time-series charts. image
      • On this page you can view the top web requests by count. You should recognize the URLs from the sample app! image
      • You can also view top web request by Response Time by simply changing the metric to Response Time By clicking on one of the requests. image

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.

Tasks to complete this step

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.

Tasks to complete this step

  1. Navigate to the Database screen
    • Lets get back to the 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.
    • On the backend service page, click on the [embedded] database under the Topology section to open the database service page. image
  2. Review the Database screen
    • The sample application uses an In memory Java relational database. On this page you can explore the database process like
      1. What services call this database
      2. Database availability
      3. View individual SQL statements
      4. Various Database metric
        image

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.

image

Tasks to complete this step

  1. Review the Technologies view

Planning Ahead

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.

Checklist

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