Hi,
I have a query regarding the timing information shown in transaction flow.
As shown in attachment the Response Time for user action "Click on iAnalyze" is 8631ms and if I see the transaction flow for user action I can see the time spent on web server is 1.15s, on app server it took 11.86 s,in domain less call it spent 5.74s and on sql server it spent 122.93ms.
Now my question is how the response time is calculated as 8631ms because if I sum up all the time on each tier it is coming more than 8631ms.
Please help me to find out the exact reason for this
Answer by Graeme W. ·
Ricardo,
Yes, in the general case you can't calculate the response time contribution of each tier from the execution times. Just to be completely clear, this is not so much a Dynatrace limitation as it is a limitation on what can be known about asynchronous execution.
But in any particular case, you might know enough about the application to be able to do make the calculation.
For example, if you knew that tier A called both tiers B and C but only waited for C, you might be able to calculate the response time contribution by looking at the execution times of tiers A and C.
-- Graeme
Answer by Graeme W. ·
Ricardo,
As you say, the Transaction Flow provides information on both response time and execution time.
The problem with a simple translation from one to the other – at least in the case of applications that include asynchronous inter-tier communications – is that it would seem to require a detailed model of locks, threads and the thread pool.
Suppose a thread on one tier makes an asynchronous call to another thread on the same tier, which sometimes makes a call to another tier. Sometimes, perhaps based on the data being processed, the first thread waits for the second to complete and sometimes it doesn't. We know the response time of the first thread, and we know the execution time of all the individual threads, but how do we know how much of response time to charge to the downstream thread execution times?
So the answer to your question is that Dynatrace doesn't allow you to apply the Execution Time % breakdown to the Response Time. Also, I don't think it's that simple.
-- Graeme
Thanks Graeme,
So are you saying the percentage breakdown on the Transaction Flow is not really useful to determine the Response Time contribution for each Tier?
Answer by Ricardo C. ·
Question related to this statement above: The Response Time of PurePaths DOES NOT include Client Time. Client Time can be seen if you have UEM. It is captured and shown in the User Action PurePaths.
If we have UEM, will we still be able to see Client Time in User Action PurePath if the load was generated thru Load Runner? Or will the load need to be generated thru QTP?
UEM is capturing data through the JavaScript agent we load into your website. If you use Load Runner UEM will only work if Load Runner actually loads and executes that JAvaScript file. In a "regular HTTP-based" Load Runner script this is not the case as you are just simulating HTTP Traffic. Load Runner has an option as far as I know that simulate a "TruClient". That would then also execute our JavaScript code and capture UEM data. QTP would do the same thing as it drives the browser
Andi
Question related to this statement above: PurePath is able to follow synchronous and asynchronous transactions. In the Transaction Flow you see the time spent on each tier including time spent when this tier is called asynchronously.
The Transaction Flow shows the percentage breakdown for each tier for response time contribution. But the percentage shown is based on Exec Sum (ms)column figure (syn + asyn) and not on the Response Time (ms) column. So if we want to know just the Response Time contribution for a tier, would it be accurate to apply the percentage shown on the Transaction Flow?
So for example, if the Transaction Flow shows 47% for Tier JVM1, would it be accurate to state that Response Time contribution is 1960 (ms)? 47% of 4170 Response Time (ms) column = 1960 (ms).
Since the Response Time (ms) column is for synchronous transactions only, would it be accurate applying the percentage against the Response Time (ms) column?
Answer by Ed P. ·
Hi guys
Jerry Lobenstein I have done a very similar report and the numbers don't add up. My PurePath duration is less than my web request. In some cases the PurePath is slightly less. The subpath -java and backend are the same time. DB time is the most accurate. Seems many people have this requirement. A chart of tier distribution as a percentage. Matching transaction Flow.
Answer by Jerry L. ·
Ok, I assume your agents are connected and reporting in and data is being collected? I would make sure via the Agent Overview this is the case, also you see Purepath data for the desired tier/agent.
Then make sure you have selected the Tier SubPath Measure Specific Attribute (Java, Net, Backend, etc.)
Under the measure details tab check to make sure your calculating for all applications and all agents.
Answer by Jerry L. ·
Hi Rajesh,
Are you looking for a chart like below(could be pie, bar or line chart)?
Here are the measures I charted (Tier Subpaths, DB Time, Estimated Client Time)
Here is the specific value I have on the tier time measure
Answer by Andreas G. ·
The Response Time of a PurePath is the execution time of the first node in the PurePath. In yesterdays Community Webinar I discussed Response Time vs. Duration as well as Exec Time vs. Total Exec Time. You can watch the recording on APM University: http://apmuonline.compuwareapm.com/course/view.php?id=724
Here are two images of the slides I used to explain these numbers:
The Response Time of PurePaths DOES NOT include Client Time. Client Time can be seen if you have UEM. It is captured and shown in the User Action PurePaths
Answer by Prathamesh J. ·
Can you please elaborate how the response time is calculated and does it calculate client time in response time.
Answer by Richard H. ·
I there a way to see/display these synchronous and async components relative to the whole transaction trace "sort of" like how dT displays hotspots in the upper left frame-let. For example one bar for the whole transaction duration. Then other parallel bars for the processings in the different agent nodes, and for both sync and async processings inside those, basically visually showing relatively when those processings were occurring (start to end times of them relative to the whole purePath). Basically somewhat simular idea as the hotspot display to give you a visual reference of what was happening in the selected purePath. Is this ability already there somewhere and I've never connected with it. I don't see a way to get this out of the transaction flow dashlet or the hotspot either but I might have missed some button somewhere.
Thanks,
Rich
JANUARY 15, 3:00 PM GMT / 10:00 AM ET