On this page: Related pages:
On this page:
About Asynchronous Transaction Demarcation
To configure end-to-end transaction performance, you identify the business transaction that contains the asynchronous activity that you want to monitor and a demarcation point that defines the end point for the asynchronous transaction.
You define the transaction demarcator in one of two ways:
- By identifying the application method that acts as the logical end point in the transaction processing sequence. For a response handler, this could be a method that watches for spawned threads to complete and when done, assembles the response and sends it back to the client. The end to end transaction time includes the time it takes for this configured method to finish processing, not when the method is invoked.
- By specifying a tier on which the end-to-end transaction processing is completed. This lets you determine the logical transaction response time for transactions that perform asynchronous backend calls (such as JMS calls or web service calls). When the last of the threads spawned by the transaction terminates on that tier, the agent considers the transaction complete.
The threads in the logical transaction processing flow must be traceable by AppDynamics, including the thread that contains the end-point method. If needed, configure custom thread correlation to ensure that all threads are properly traced. For more information, see Enable Thread Correlation for Java.
It's possible to use the asynchronous transaction configuration to specify more than one demarcator for a particular business transaction. When there are multiple demarcation points, the first one that is satisfied is used as the end-to-end processing time.
It is important in this case to avoid configuring multiple demarcators that could be satisfied on different tiers for a given transaction. For example, for a single business transaction, do not configure a demarcator of the last thread on one tier and another for the last thread on another tier. Doing so may yield unreliable end to end transaction metrics.
Your demarcation method configuration can consider runtime state, such as the values of parameters passed to the method. This allows you to account for an application design in which the completion of a logical business transaction is signaled by the value of a method parameter or return value.
If you choose the last thread on tier demarcator type, the transaction end point is considered to be the time when the thread that receives the traced transaction terminates or the latest points at which any descendant threads terminate.
Configuring End to End Performance Monitoring
To configure end-to-end message transaction monitoring, in Configuration > Instrumentation click Asynchronous Transaction Config.
Follow the instructions in the wizard to configure the type of demarcation point (whether a tier or method) and the business transaction associated with this asynchronous transaction.
If choosing the tier-based demarcation point, it's worth noting how AppDynamics makes the determination that the threads on the tier are complete. Each time a thread spawns an additional thread, AppDynamics increments an internal thread counter. Each time one of the spawned threads terminates, the thread count is de-incremented. When the thread count reaches zero, AppDynamics interprets the asynchronous transactions to be complete.
Viewing End-to-End Performance
When you complete the configuration, you can view end-to-end latency metrics for the business transaction. Values for end-to-end message transaction performance appear in the metric browser view for the node and for the overall application. In the business transaction flow map, the end-to-end latency transaction scorecard appears, as shown in the following screenshot:
Note that the Transaction Scorecard (which appears above the End to End Latency Transaction Scorecard) reflects only the data for the originating business transaction. The end to end latency scorecard shows the health based on the end to end asynchronous transaction time. The user experience scorecard criteria for end to end metrics are the same as for the response time transaction scorecard, which are configured as described in Transaction Thresholds.
End-to-End Performance Metrics
The performance metrics for end-to-end message transactions, which can be found in the overall application metric tree in the metric browser, are:
- Average End to End Latency: The average time in milliseconds spent processing end-to-end message transactions over the selected time frame.
- Number of Slow End to End Messages: The number of end-to-end transactions that exceeded the slow threshold for the business transaction over the selected time frame. The slow user experience is based on the slow transactions thresholds applicable to the general business transaction. (That is, separate thresholds do not apply to end-to-end latency.)
- Number of Very Slow End to End Latency Times: The number of end-to-end transactions that exceeded the very slow threshold for the business transaction over the selected time frame. The very slow user experience is based on the very slow transactions thresholds applicable to the general business transaction. (That is, separate thresholds do not apply to end-to-end latency.)
End-to-end transaction performance also appears in the waterflow view for transactions in the business transaction list if the End to End Latency Time (ms) view option is enabled.