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
- Select Transactions & services from the navigation menu.
- Click the service you want to analyze to open the service’s overview page.
- In the Understand dependencies section, click View Service flow.
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
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.
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:
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
Let's assume that your service flow indicates these request values for your service:
- Average response time =
- Call percentage =
- Calls per request =
- Response time contribution = (Average response time) x (Call percentage) x (Calls per request)
- Response time contribution =
In this case, the response time contribution =
The displayed value for the response time contribution may differ from the actual mathematical result as the calculations are based on underlying data and then rounded off afterwards.
If you click Filter service flow on the service, the view will filter down to show only the requests that call that service. The call percentage will then rise to
100%. This set of requests is a subset of what you examine and, because it contributes to every request in that new view, the contribution will be higher.
The top tile side of the side pane shows the details of the service requests that triggered the service flow. At the image below it's
easyTravel Customer Frontend.
The Passing transactions tab shows the throughput of the service and its performance—response time, number of requests and more. Click Show more to view further analysis options. The analysis includes all the requests, originating from the service.
The Infrastructure tab shows that
easyTravel Customer Frontend runs on two hosts and how the throughput is distributed between them. Click Apply as filter to filter Service flow—only calls originating from the selected host will be shown.
When you select a service within Service flow, the bottom tile appears, showing the details of the selected service. At the image below it's
Now the top tile shows details in context of the selected service. We can see that the count of calls which originate from
easyTravel Customer Frontend and subsequently call
easyTravel-Business is 8,490 calls out of 127,000. Click Filter service flow to show only call originating from
easyTravel Customer Frontend and subsequently hitting
easyTravel-Business. Further analysis options also focus on these calls.
The bottom tile shows details of calls to
easyTravel-Business which originated from
easyTravel Customer Frontend. Further analysis options also focus on these calls.
In between tiles you can see the list of all intermediate services and/or proxies between
easyTravel Customer Frontend and
easyTravel-Business. Click it to expand each section and view its details.
Further analysis options
- 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.)
- Analyze outliers
View the response time distribution of requests to the service within a specific timeframe.
You can specify additional filtering options to narrow down the scope of the analysis. See Service flow filtering to learn how. All these filters will also be applied to further analysis.