What does Service flow show?

Dynatrace understands your applications’ transactions from end-to-end. This transactional insight is visualized through Service flow, which illustrates the sequence of service calls that are triggered by each service request in your environment. With Service flow you see the flow of service calls from the perspective of a single 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.

To view the service flow triggered by a specific service

  1. Select Transactions & services from the navigation menu.
  2. Click the service you want to analyze to open the service’s overview page.
  3. In the Understand dependencies section click the View Service flow button.

The image below shows the service flow triggered by the EasyTravelWebServer service, as well as how each initiated service contributes to the overall response time. The EasyTravelWebServer service calls a Tomcat service. The Tomcat service in turn calls two other services, which call two more services. What becomes immediately apparent is that the Credit Card Verification service contributes the most to overall response time, although its caller, BookingService, is only called by 28% of the requests. This degree of analysis enables you to understand the bigger complexities within your system.

Note: Please note that Service flow visualization isn't designed to show when service calls are executed relative to one another. While Service flow visualization is helpful for understanding the sequence of service-call chains, it doesn't necessarily show the order in which calls were made relative to one another across services.

Service flows can become highly complex. For improved readability of service-flow data, Dynatrace aggregates services that contribute little to overall response time. Aggregated services have names like 2 services, 4 instances, etc. Notice the aggregate named 4 services in the middle column below. Click this to see which services are aggregated here. If you select one of the aggregated services, Service flow will display the requests path of the selected service.

Note: Aggregations are calculated dynamically based on the size of your browser window. You can use your browser's zoom in/out feature to make more space available.

As you can see in the example above, some of the services in the above service flow appear multiple times (easyTravel Customer Frontend and EasyTravelWebserver). This is because these services were called at multiple points during the flow of this transaction. Each call performs different actions and contributes different amounts to the overall response time. Dynatrace doesn’t aggregate these varying circumstances into a single metric because individually they are significant and provide valuable insight into what’s going on at a deep level in your environment.

Metrics and analysis options

When you select a service within service flow, the path to the service—beginning with the service that triggered the flow—is highlighted in blue (see image below). Additionally, the arrows constituting the path are enriched with two metrics. The first metric shows the percentage of requests initiated by the source service that involve calling the target service. The second metric indicates the average number of calls to the target service that were included in each request.

Service flow - response time contribution

Apart from response time contribution, you can also view the Average response time and the number of Requests initiated by each service included in service flow. Just click a service to expand it. Once clicked, you can view further details like Avg. time spent in called services and the number of Failed requests (see image above, bottom right).

Each service also shows the Response time contribution, which is calculated using the following formula:

Response time contribution

In the service flow example above these are marked as follows:

  • 1—Average response time service
  • 2—Call share
  • 3—Call per request
  • 4—Average response time overall

The details in the top tile relate to the service that triggered the service flow (EasyTravel Customer Frontend in this example). These values remain constant. The details in the bottom tile (MicroJourneyService in this example) change based on the currently selected service in the service flow.

Each tile includes additional analysis options (click Show more to view them):

  • View PurePaths
    Analyze the detailed method-level chain of calls.
  • Analyze backtrace
    Explore the sequence of service calls that led up to the specific service request.
  • View response time
    View how the response time is distributed along different functions of the service (for example, database usage, code execution, etc.)
  • View response time distribution
    View the response time distribution of requests to the service within a specific timeframe.

Lastly, you can focus on a specific part of the service flow by clicking the Add filter button. For more details, see adding a filter.