A threshold is a boundary of acceptable or normal business transaction performance. AppDynamics provides default thresholds against which it compares the performance of every business transaction. Each transaction is classified into a user experience: normal, slow, very slow, stall, or error transaction.
The user experience reflects the performance of a transaction instance relative to the usual performance of the business transaction. This page provides information about refining the criteria by which the classification is applied, based on your requirements.
Transaction Threshold Values
As soon as a transaction starts, the particular thread representing that transaction is monitored for a stall. Every five seconds, the in-flight transactions are evaluated to determine if they have met or exceeded the stall threshold:
- If a transaction execution finishes before the stall threshold value, the execution time is first compared against the very slow threshold, then the slow threshold, and so on, and marked accordingly.
- If a transaction reaches the stall threshold (greater than 300 deviations above the average for the last two hours) or the set stall threshold, a stall transaction event is generated. Whether the transaction eventually finishes successfully or times out, it is considered a stall for performance monitoring purposes.
- If the standard deviation is large ( > 50% of average), the moving average is used to calculate the threshold
Transaction errors are not determined by thresholds. Instead, transactions are marked as errors when the HTTP response status code is in the 400–505 range or when any exception occurs that is not excluded in the custom error configuration.
Static and Dynamic Thresholds
Thresholds can be based on a static value or dynamic value. By default, a dynamic threshold is based on performance for the previous two hour time period. You can specify a dynamic threshold using either a percentage deviation or a standard deviation measure.
To understand how a transaction is compared to this moving window, consider a two-hour moving average window from 11:00 AM to 1:00 PM. All transactions that arrive in between 1:00 PM and 1:01 PM are measured against the response time and standard deviation of this window. For the next minute, between 1:01 and 1:02 PM, the window moves from 11:01 AM to 1:01 PM. The moving average itself is calculated based on the exponential moving average formula.
- Data for minutes where there is no load is not counted.
- Data is maintained locally on each node for the starting tier for a business transaction. The Controller does not retain any of this data.
Percentage Deviation Threshold
Percentage deviation defines a threshold based on the moving average of the requests over a certain interval. The default time interval is 2 hours. If the average response time for the last two hours is X milliseconds, and if the request takes the percentage deviation over X ms, then the transaction violates the threshold.
For example, a transaction occurs at 10:00:01 AM. The average of the requests between 8:00:00 and 10:00:00 is 100 ms and the slow threshold is defined as 20% over the threshold. If the transaction takes 120 ms, it is considered a slow transaction.
Standard Deviation Threshold
Standard deviation defines a threshold based on the moving average over a certain interval. The default time interval is two hours. This means if the average response time for the last two hours is X milliseconds, and if the request takes the standard deviation over X ms, the transaction violates the threshold.
To understand how a standard deviation threshold works, consider an example with a moving average that is 1500 ms with a standard deviation of 100 ms. If you set the threshold to 3, it means that the threshold is three times the standard deviation. A transaction that takes more than 1500 + (3*100) or 1800 ms violates the threshold.
Alternatively, you can set the threshold to a static value or use a percentage of the average.
You can also disable stall detection. If you disable stall detection, a transaction that might qualify as a stall is reported as very slow if it completes. If it does not complete, nothing is reported for the incomplete transaction.
You can configure thresholds in Configuration > Slow Transaction Thresholds. You need permissions to Configure Business Transaction application permissions.
Thresholds apply to various levels, by application or business transaction, including background task transactions. You can also configure thresholds for diagnostic sessions.
You can specify thresholds for User Transactions—using the regular business transactions tab—or background transactions tab, depending on the type of entity for which you want to configure thresholds.
Thresholds for Browser Real User Monitoring (RUM) are configured separately. See Configure Browser RUM Performance Thresholds.
You can configure thresholds for slow, very slow, and stalled transactions. When a transaction exceeds a threshold, AppDynamics starts capturing snapshots of it.
Because snapshots are not captured while performance is within the normal range, the snapshots may not contain the full call graph for the transaction.