Developers use asynchronous programming patterns to create scalable, more performant applications. Microsoft .NET lets you designate methods as asynchronous tasks.
The .NET runtime releases resources for asynchronous methods while tasks complete. When task processing finishes, the runtime calls back to the originating asynchronous method so the method may continue processing.
The .NET Agent detects certain asynchronous programming patterns as exit points. Because tasks may execute in parallel, AppDynamics sometimes represents asynchronous activity differently from synchronous activity in the Controller.
AppDynamics differentiates .NET async backend tracking from thread correlation. To configure thread correlation, see Enable Thread Correlation for .NET.
Supported Asynchronous Exit Point Patterns
The agent automatically discovers the following asynchronous programming patterns for HTTP, Web Service, WCF, ADO.NET, Azure Blob Storage, Azure File Storage, and Azure Table Storage exit points:
Microsoft .NET 4.5 async and await keywords. See Asynchronous Programming with Async and Await.
Identify Asynchronous Backend Calls in Dashboards
When AppDynamics detects asynchronous exit points in an application it displays a dotted line labelled "async" for the flow in the dashboards. Because they may execute simultaneously the Controller doesn't display percentage value of the end-to-end transaction time for asynchronous calls.
Troubleshoot Asynchronous Calls in Transaction Snapshots
Transaction snapshots include several features to help you discover problem areas in business transactions that use asynchronous methods. For an overview of transaction snapshots, see Transaction Snapshots.
Transaction Snapshot Flow Map
The Transaction Snapshot Flow Map graphically represents the business transaction. It displays 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. The async label indicates asynchronous calls.
Snapshot Execution Waterfall View
The transaction Snapshot Execution Waterfall View shows a timeline representation of the end-to-end execution of the business transaction. Synchronous and asynchronous processes appear on a bar diagram illustrating their relative execution time arranged in chronological order.
The waterfall view enables you to visually identify which processes are running the longest. Double-click a bar to drill down to a call graph and investigate problematic code.
Analyze Asynchronous Activity in the Metric Browser
The Metric Browser displays asynchronous activity in the following places:
- Business Transaction Performance -> Business Transactions -> tier > business transaction -> Thread Tasks -> Asynchronous Operation -> External Calls
- Overall Application Performance -> tier -> Thread Tasks -> Asynchronous Operation -> External Calls
- Overall Application Performance -> tier -> Individual Nodes -> node name -> Thread Tasks -> Asynchronous Operation -> External Calls