This page describes the scenarios that trigger AppDynamics to capture a transaction snapshot and how to configure transaction snapshot settings.

AppDynamics captures transaction snapshots of select instances of a transaction and provides a cross-tier view of the processing flow for a single invocation of a transaction. See Troubleshoot Business Transaction Performance with Transaction Snapshots.

Subject to the guidelines and limits described on this page, snapshots are captured when: 

  • The app agent determines the user experience for the business transaction to be slow or the transaction incurred an error.
  • The app agent collects snapshots during periodic snapshot collection.
  • The app agent collects snapshots during a diagnostic session. 

Snapshot and Call Graph Retention Rules

For a given transaction instance, a call graph may be available for some tiers but not all. These guidelines describe the rules for when the app agent captures transaction snapshots for the originating and downstream tiers in a transaction. They also describe the type of call graphs a snapshot might include depending on the cause for the snapshot. The guidelines apply to business transaction correlation as well as cross-application flow.

  • Any tier (originating or continuing) takes a snapshot when it recognizes that it is experiencing slow, very slow, or stalled response times or has errors.
  • An originating tier takes a transaction snapshot:
    • When the agent starts a diagnostic session on the originating tier because it has detected a pattern of performance problems. You can also manually start a diagnostic session from the Business Transaction Dashboard. See Diagnostic Sessions.
    • When the agent identifies slow, very slow, or stalled response times, or errors on the originating tier. These snapshots may have partial call graph information because they start at the time when the transaction slowed or experienced an error.
    • Based on the periodic collection schedule. By default, the agent captures one snapshot every 10 minutes.
  • The downstream tier captures snapshots when the tier immediately upstream to it tells it to take a snapshot. An upstream tier might direct its downstream tier to take a snapshot under these circumstances:
    • The upstream tier is taking a snapshot for a diagnostic session.
    • The upstream tier is taking a snapshot based on the periodic collection schedule.

Transaction Snapshot Limits

Within the guidelines, snapshot retention is also subject to snapshot retention limits. Snapshot retention limits prevent excessive resource consumption at the node level:

  • Originating transaction snapshots are limited to a maximum of 20 originating—5 concurrent—snapshots per node per minute. 

  • Continuing transaction snapshots are limited to a maximum of 200—100 concurrent—snapshots per node per minute. 

AppDynamics applies snapshot retention limits to error transactions. As a result, not every error occurrence that is represented in an error count metric, for example, will have a corresponding snapshot. For error transactions, these limits apply:

  • For a single transaction, there is a maximum of two snapshots per minute. 
  • Across transactions, the maximum is limited to five snapshots per minute (specified by the node property max-error-snapshots-per-minute).

Configure Snapshot Periodic Collection Frequency

By default, AppDynamics collects a snapshot every 10 minutes.

Navigate to Configuration > Slow Transaction Thresholds. You can modify this default in the Slow Transaction Thresholds configuration page.

The value will apply to subsequently created business transactions, but if you check Apply to all Existing Business Transactions, all existing business transactions are affected by the change.

If you have a high load production environment, do not use low values for snapshot collection. You must configure the collection on a very frequent basis. When there are thousands or millions of requests per minute, collecting snapshots too frequently may result in many extra and useless snapshots. Either turn off the periodic snapshots and apply to all Business Transactions, or choose a very conservative (high) rate depending on the expected load. For example, if you have a high load on the application, choose every 1000th executions or every 20 minutes, depending on the load pattern.