The stalled transaction traces were captured for a monitored application, along with its total duration. However the break down of each individual component in this stalled transaction shown in the Stack View underneath does not seem to add up to the total duration.
How should I interpret the time value (ms) for the individual components in the Stack View of a stalled transaction?
Applicable to All APM Releases
Basically, the time (ms) value appended to the end of each individual component in the Stack View refers to the relative timestamp, which is the time when that particular component was called.
Let's look at the following example.
In this screen shot, the total Duration of the Stalled Transaction was 2207ms. The following components were called simultaneously at the start of the transaction, which was at 0ms into the transaction:
The 3rd component was actually the one that performed some executions, and it took about 56 milliseconds to complete, where the next component was then called at the 56th ms into the transaction:
This transaction took about 590ms (646ms - 56ms) and then followed by the next component and so on.
With this interpretation, we will be able to come up with the net duration for each component as follow:
|Component||Net Duration (ms)||Calculation|
|Frontends|Apps|medrec|URLs|Default||0||0ms - 0ms|
|Servlets|Faces Servlet||0||0ms - 0ms|
|JSF|Lifecycle|LifecycleImlp|execute||56||56ms - 0ms|
|JSF|Event|ActionListenerImpl|processAction||590||646ms - 56ms|
|EJB|Session|PatientServiceImpl_ipi4kg_Impl||37||683ms - 646ms|
|EJB|Session|PatientRepositoryImpl_lti7hc_Impl||1524||2207ms - 683ms|
So if we add up the net duration of all the called components, we get the total Duration for the stalled transaction:
0 + 0 + 56 + 590 + 37 + 1524 = 2207
For more information, see Error Stack View