How is the response time contributions calculated in complex service flows?
- Mark as New
- Subscribe to RSS Feed
- Permalink
‎26 Apr 2019
04:08 PM
- last edited on
‎11 Apr 2023
09:55 AM
by
Karolina_Linda
I have been trying to explain to a project how response time contribution is calculated in a Service Flow diagram. I have been referring to this answer but came across an inconsistency in the calculation results for more complex service flows. Can someone please tell me how response time contributions are calculated and why my calculations seem to be off in Example #2 attached?
Excel calculations examples-calcs.xlsx
In Example 1 –
- In
this case I am using the service flow for a single PurePath
- The
calculations in this case are mostly adding up – The response time
contribution calculation matches the contribution reported in the service
flow
In Example 2 –
- For
this case I use a service flow analyzing approx. 2k transactions.
- Using
the same formulas from example 1, the response time contributions no longer
match what we're seeing in the Service Flow
- There's
some asynchronous invocations in play here. But even the contribution
calculation for the Web Tier, which is upstream to the async calls, does
not match what is reported in the service flow
The formulas I'm
using:
- (Average
time per Tier) = (Average
Response Time) x (Call Percentage) x (Calls per request) - (Calls per request) = (Requests) / (Consuming API.Requests)
- (Response Time Contribution) = (Average time per Tier) /
(Consuming API.Average Response Time)
Note: The first formula I got from this answer: https://community.dynatrace.com/t5/Dashboarding/How-is-the-response-time-contribution-in-service-flo...
- Labels:
-
service flow
- Mark as New
- Subscribe to RSS Feed
- Permalink
‎27 Apr 2019 12:17 PM
I understand this like this
We have something like this:
Root —- A(60%) —- B (70%). —- C (20%)
This means that on A we spent 60%, from this time 70% was spent on component B (from root it will be x*0.6*0.7)
From this time 20% was spent on component C so x*0.6*0.7*0.2
Sebastian
- Mark as New
- Subscribe to RSS Feed
- Permalink
‎29 Apr 2019 04:11 PM
Thanks for the reply Sebastian. So please correct me if I'm misinterpreting your answer. But from that I'm getting this formula:
(Average Time on C) = (Average Time on Root) x (Response time Contrib on A) x (Response time Contrib on B) x (Response time Contrib on C)
which becomes this formula (when trying to get the contribution time on C):
(Response time Contrib on C) = (Average Time on C)/( (Average Time on Root) x (Response time Contrib on B) x (Response time Contrib on A) )
When I try to apply this new formula to the two examples in my note however, the results still do not match the response time contributions reported on the Dynatrace Servce Flow. Are there any other factors I'm missing here?
