AppDynamics Application Intelligence Platform
3.9.x Documentation
A transaction snapshot depicts a set of diagnostic data, taken at a certain point in time, for an individual transaction across all app servers through which the transaction has passed.
Transaction snapshots are the vehicle for troubleshooting the root causes of performance problems.
Code level visibility is essential for troubleshooting performance problems in production. You need details about the exact code path taken by a particular transaction and the time spent in the methods that were executed. A distributed environment presents a challenge because multiple code paths are executed across multiple application servers.
AppDynamics generates a transaction snapshot to capture the code paths executed on instrumented application servers involved in a distributed transaction.
Transaction snapshots contain considerable amounts of data. They are generated by the application server (tier) where the code they contain is running.
In the AppDynamics console, a Drill Down button on a tier in a transaction view indicates that transaction snapshots exist on that tier and that you can drill down into them to learn more about why your application is experiencing problems.
Typically in a distributed transaction you will see Drill Down buttons on all the tiers. In the following very slow transaction, you can see that transaction snapshots have been captured by the originating ECommerce server and by the downstream Inventory server:
Sometimes transaction snapshots are not captured by all the tiers in a distributed transaction. In the next example, transaction snapshots were captured on the originating Apache server but not the downstream ExpandSvc server. Why not?
Here are the rules governing whether transaction snapshots are captured on a tier. The rules are slightly different for originating and downstream tiers. An originating tier is the tier that contains the entry point to the transaction.
Transaction snapshots are captured by the originating tier in a distributed transaction:
Any tier (originating, continuing and terminating tiers) can take a snapshot, thus enabling driil down, when it knows that it is experiencing slow, very slow, or stalled response times or that it has errors.
In addition, any downstream tier captures snapshots if 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:
If none of these conditions exists, the downstream tier may not take a snapshot, hence no drill down is available on that tier.
Bear in mind that in addition to these rules, there is a limit on the number of snapshots per minute per tier, so if this limit is reached, snapshots will not be created for that minute notwithstanding conformity to the rules.
You can get a list of transaction snapshots for the selected time range:
1. Navigate to an application, tier, node, or business transaction dashboard.
2. Click the Transaction Snapshots tab.
3. From the list of transaction snapshots that displays, select the snapshot that you want to view and click View Transaction Snapshot.
4. In the transaction flow map click Drill Down.
Or
1. Navigate to an application, tier, node, or business transaction dashboard.
2. Click the individual slow, very slow, stalls or errors links in the Transaction Scorecard section of the dashboard.
3. From the list of transaction snapshots that displays, select the snapshot that you want to view and click View Transaction Snapshot.
4. In the transaction flow map click Drill Down.
Or
1. Click Troubleshoot-> Slow Response Time or Troubleshoot-> Errors in the left navigation pane.
2. Select a slow or error transaction from the list.
3. Click View Transaction Snapshot.
4. In the transaction flow map click Drill Down.
When you double-click on any item in the list of transaction snapshots, a Transaction Snapshot Flow Map displays. You can see the user experience, execution time, and timestamp of the transaction. The flow map also provides details of the overall time that is spent in a particular tier and in database and remote service calls.
When you click the Snapshot Waterfall View tab, you see a timing waterfall chart of the snapshots collected for a business transaction. The chart visualizes the call execution times as they occur during the end-to-end transaction time.
If there is asynchronous activity the waterfall view displays those calls in a different color.
The Snapshot List View shows a simple list. The list is very useful for sorting snapshots according to execution time.
An individual transaction snapshot contains diagnostic information for individual business transaction instances. It provides information to help diagnose why a particular transaction or series of transactions are not performing as well as expected.
To get the call drill down information:
The contents of a transaction snapshot containing async segments look slightly different if you access the snapshot via the Business Transaction view or via the App/Tier/Server view. In the Business Transaction view, only the originating segments are shown initially, and then you can drill down to the async segments as desired. Because the App/Tier/Server view surfaces all the segments that are relative to that entity, all segments, originating or async, are listed initially.
The following details are captured in a transaction snapshot:
Transaction snapshots include distributed call graphs and response time distribution details only when a series of bad transactions or a performance policy violation trigger a diagnostic session on a node.
1. In the Transaction Snapshots tab click the All Snapshots subtab.
2. Click Show Filters if filters are not showing.
3. Click Search Criteria. Check the following criteria to sort the list:
3. Click Search.
You can refine the results list of a previous query. AppDynamics instantly updates the list as you select or deselect the Refine Results filters.
1. In the Transaction Snapshots tab of a dashboard click the All Snapshots subtab.
2. Click Show Filters.
3. Click Refine Results. Use the following criteria to sort the list:
1. In the Business Transactions All Snapshots list, select two snapshots that you want to compare.
2. Click Analyze -> Compare Snapshots.
The Snapshot Comparison window displays a comparison of the selected snapshots. Look at the Time and Change columns to find slow methods.
1. In the Business Transactions All Snapshots list, select a single or a group of snapshots that you want to analyze. You can select up to 30 snapshots.
2. Click Analyze -> Identify the most expensive calls / SQL statements in a group of snapshots.
AppDynamics displays the most expensive calls (methods) in the snapshots and the most expensive SQL statements.
Normally transaction snapshots are purged after a configurable time - by default, two weeks. To save a snapshot beyond the normal snapshot lifespan – for example, if you want to make sure a snapshot associated with a particular problem is retained for future analysis – archive the snapshot.
Customers with on-premise controllers can modify the default two-week period by configuring the snapshots.retention.period in the Controller Settings section of the Administration console.
When you are viewing your snapshot list, a small icon in the far right column indicates that a snapshot has been archived.
To display only archived snapshots in the snapshot list, filter the snapshot list and check Return Only Archived Snapshots. See To filter transaction snapshots using search criteria.