Async request tracking support in .NET
Site24x7's APM Insight .NET agent facilitates asynchronous (async) calls made with async-await operations introduced in .NET 4.5.
Async programming is a programming approach that enables code to be executed concurrently, without blocking the execution of the calling thread. This document explains how async processing occurs and how the APM Insight .NET agent monitors async functions.
APM Insight .NET agent uses System.Threading.Tasks to capture the async-await operations being executed, even though the called method has ended.
Asynchronous operations
Synchronous programming models typically execute programming tasks in a specific order. One task must be completed before the next, which increases the waiting time for several tasks.
Asynchronous programming uses a non-blocking model, allowing tasks to be executed concurrently. Asynchronous tasks are completely independent of one another in terms of execution and initialization. Because asynchronous code does not execute in a sequential order, the server's full processing power can be utilized more efficiently.
The APM Insight .NET agent has been specifically designed to monitor async tasks, allowing users to track the performance of async functions and web transactions easily.
Traces to identify asynchronous calls
The traces captured in APM Insight provide visibility into how asynchronous tasks are executed concurrently across your environment.
Follow the steps below to view the asynchronous calls:
- Log in to your Site24x7 web client.
- Go to APM > your .NET application.
- Click the Traces tab, then click the required trace.
- Select the Trace Details tab.
We show the exact execution time for async methods that are being called using async-await.
How do async calls impact response time?
The Overall Response Time for asynchronous .NET applications is often less than the total transaction time. This is because async methods do not have to wait for all preceding methods to finish before returning. Because tasks can be deferred, the application can make better use of its limited resources and process things faster.
To view this, navigate to the Site24x7 web client > APM > select your application > click the Overview tab.
On the APM Overview page, check the App Server Response Time Broken by Components graph. The asynchronous activity in the respective Java application can result in the response time (dark blue line) being less than the total transaction time.