The .NET agent collects about sixty platform-specific counters across ASP.NET, the .NET CLR, IIS, and the web server process group, on top of the base CPU, memory, disk, and network metrics. Every counter plots on the same axis as response time, so a spike in Lock Contention Queue Length or Requests Queued lines up against the slowdown automatically. No counter list to configure.
Every WPLoadTester monitoring agent captures the base OS metrics: CPU, memory, disk, and network. On a Windows host running IIS and ASP.NET, the .NET agent adds about sixty platform-specific counters on top of that base, so a degradation inside the runtime is visible alongside the box-level resource curves.
The agent collects its full counter set automatically. There is no metric-selection step and no counter list to maintain. The dashboard surfaces each counter the same way it surfaces CPU, plotted against the same x-axis as response time.
The base CPU, memory, and disk metrics ship in the Free edition. The .NET, CLR, and IIS counters are part of the Cloud full-metric set. See the full Server Monitoring overview
Each table below lists what WPLoadTester reports for that counter group and what the value measures. The same counters drive the correlation math, so the descriptions double as a reference when the dashboard flags one as the likely bottleneck source.
| Counter | What it measures |
|---|---|
| Active Sessions | The number of active sessions. |
| ASP.NET Application Restarts | Number of times the ASP.NET application has been restarted during the sample period. |
| Application Restarts | Number of times the application has been restarted during the sample period. |
| Cache Entries | Total number of entries in the ASP.NET application cache, both internal and user-added. |
| Cache Hit Ratio | Ratio of hits across all ASP.NET application cache calls. WPLoadTester reports this per sample period rather than as a running average since the last restart. |
| Cache Hits | Number of hits from all ASP.NET application cache calls. |
| Cache Misses | Number of misses from all ASP.NET application cache calls. |
| Cache Turnover Rate | Additions and removals to the ASP.NET application cache per second. |
| Compilations | Number of .asax, .ascx, .ashx, .asmx, or .aspx source files dynamically compiled. |
| Current Requests | Current ASP.NET requests, including those queued, executing, or waiting to be written to the client. When this exceeds the configured requestQueueLimit, ASP.NET begins rejecting requests. |
| Disconnected Requests | Requests disconnected due to a communication failure. |
| Errors/sec | Rate of errors that occurred. |
| Last Request Execution Time | Time it took to execute the most recent ASP.NET request. |
| Pipeline Instance Count | Number of active ASP.NET application pipeline instances. |
| Queued Requests | Number of ASP.NET requests waiting to be processed. |
| Rejected Requests | ASP.NET requests rejected because the request queue was full. |
| Request Wait Time | Time the most recent request spent waiting in the queue. |
| Requests Executing | Number of ASP.NET requests currently executing. |
| Requests Not Found | Requests for resources that were not found. |
| Requests Not Authorized | Requests that failed due to unauthorized access. |
| Requests Queue Length | Number of ASP.NET requests in the application request queue. |
| Requests Succeeded | Requests that executed successfully during the sample period. |
| Requests Timed Out | Requests that timed out. |
| Requests/sec | Number of ASP.NET requests executed per second. |
| Sessions Timed Out | Sessions closed because idle time exceeded the server's AutoDisconnect setting. Shows whether AutoDisconnect is helping conserve resources. |
| Sessions Abandoned | Sessions that were explicitly abandoned. |
| Unhandled Execution Errors/sec | Rate of unhandled errors. |
| Counter | What it measures |
|---|---|
| Class Loader Heap Size | Current size in bytes of memory committed by the class loader across all AppDomains. |
| Current AppDomains | Current number of AppDomains loaded in the application. AppDomains isolate applications running in the same process. |
| Current Assemblies | Current number of assemblies loaded across all AppDomains. A domain-neutral assembly loaded from multiple AppDomains counts once. |
| Exceptions/sec | Number of exceptions thrown per second, handled and unhandled. A sustained rate above roughly 100 per second is a sign of trouble, since exceptions should be rare rather than part of normal control flow. |
| Heap Size | Current memory allocated on the GC heaps: the sum of the Gen 0, Gen 1, Gen 2, and Large Object heaps. |
| Generation 0 Collections | Number of times the youngest, most recently allocated objects were garbage collected during the sample period. |
| Generation 1 Collections | Number of times generation 1 objects were garbage collected. |
| Generation 2 Collections | Number of full, generation 2 garbage collections. |
| Lock Contention Queue Length | Number of threads currently waiting to acquire a lock. |
| Lock Contention/sec | Rate at which threads fail to acquire a managed lock on the first attempt. |
| Lock Contentions | Total times threads failed to acquire a managed lock during the sample period. |
| Logical Thread Count | Number of current .NET thread objects, running and stopped. |
| Percent Time in GC | Percentage of elapsed time spent in garbage collection since the last GC cycle. |
| Physical Thread Count | Native OS threads owned by the CLR that back the .NET thread objects. |
| Recognized Thread Count | Threads created outside the CLR that have since run inside it at least once. |
| Counter | What it measures |
|---|---|
| CGI Requests/sec | Rate of CGI requests received by the web service. |
| Connection Attempts/sec | Rate of connection attempts to the web service. |
| Current Connections | Current number of connections established with the web service. |
| Extension Requests/sec | Rate of ISAPI extension requests received by the web service. |
| File Cache Entries | Number of entries in the file cache. |
| File Cache Hits | Number of successful lookups in the file cache. |
| File Cache Hit % | Ratio of file cache hits to total cache requests, reported per sample period. |
| File Cache Misses | Number of failed lookups in the file cache. |
| Kernel URI Cache Hit % | Ratio of kernel URI cache hits to total cache requests, reported per sample period. |
| Kernel URI Cache Misses | Failed lookups in the kernel URI cache. |
| Requests/sec | Rate of HTTP requests received by the web server. |
| URI Cache Entries | Number of entries in the URI cache. |
| URI Cache Hits | Successful lookups in the URI cache. |
| URI Cache Hit % | Ratio of URI cache hits to total cache requests, reported per sample period. |
| URI Cache Misses | Failed lookups in the URI cache. |
These five counters combine the IIS process (inetinfo), the ASP.NET worker process (aspnet_wp), and the Application Pool process (w3wp) into a single view of what the web server tier is consuming.
| Counter | What it measures |
|---|---|
| Handle Count | Handles held by the known web server processes. |
| Private Bytes | Committed memory owned by the known web server processes. |
| Thread Count | Threads active across the known web server processes. |
| Virtual Bytes | Virtual address space size for the known web server processes. |
| Percent Processor Time | Percentage of elapsed time the web server process threads used the processor. |
The Analytics Dashboard runs correlation math on every collected counter against response-time degradation. Any counter whose curve correlates above 0.94 with the slowdown gets flagged, and on Cloud the AI report writes the bottleneck-source paragraph from those flags: which counter saturated, on which host, at which user level the response time went vertical. A request queue that climbs as response time goes vertical is the kind of pattern that surfaces without manual cross-referencing.
Run a load test against your .NET stack and watch the counters line up.
The base monitoring agent ships in every WPLoadTester 7 install and captures CPU, memory, and disk for free. The full .NET, CLR, and IIS counter set is part of the Cloud edition. Download it to see your own runtime counters correlated against response-time degradation.
Comparing tiers? See the Free vs Cloud split.