Updated Application Insights Status Monitor to support .12 (and later) Application Insights SDK
The latest release of the Application Insights Status Monitor tool provides an update to the runtime instrumentation agent, which is a component of Application Insights that automatically discovers your code dependencies like SQL databases, other HTTP endpoints and Azure storage accounts. This new runtime instrumentation agent requires your application to use the .12 (or later) Application Insights SDK available here. The latest version of the Application Insights Status Monitor tool is available to install here. Follow either of these steps to update your application from a previous version of the Application Insights SDK to the .12 SDK version.
1. If your application onboarded to Application Insights from Visual Studio 2013 Update 3 or later then right click on the ApplicationInsights.config file in Solution Explorer and choose Update Application Insights.
2. If your application was onboarded to Application Insights using the Application Insights Status Monitor configuration tool, make sure you have the latest version of the Application Insights Status Monitor installed then choose Remove and then Add Application Insights as shown in the below screenshots.
Add Application Insights:
One of the changes made in the .12 version of the Application Insights for Web Applications SDK is the collection of the following Windows performance counters. These Windows performance counters are automatically configured to be collected and sent to the Application Insights service every 1 min.
% Process CPU
The percentage of elapsed time of all process threads used by the processor to execution instructions for the applications process.
Physical memory immediately available for a process or for system use.
ASP.NET request rate
Rate of all requests to the application per second from ASP.NET.
Exceptions thrown per second.
Process private bytes
Memory exclusively assigned to the monitored application’s processes.
Process IO rate
Total bytes per second read and written to files, network and devices.
ASP.NET Request execution time
Execution time of the most recent request.
ASP.NET Requests in application queue
Length of the application request queue.
% Processor time
The percentage of time that the processor spends in non-Idle threads.
Performance counters and code dependencies can be viewed and explored from the Metrics Explorer:
There are 2 steps required to ensure these Windows performance counters are collected and sent to the Application Insights service along with other telemetry:
1. ensure your web application is using the .12 version of the Application Insights for Web Applications SDK
2. ensure your web application ASP.NET worker process identity has the right Windows privileges to read Windows performance counters. This usually means adding the ASP.net worker process into the local “Performance Monitor Users” group. Installing the latest version of the Application Insights Status Monitor will attempt to make the required change based on the ASP.NET worker process identity used.
- There are cases where you may see the following warning message. In this case you may need to check the ASP.NET worker process identity and manually add it to the servers local “Performance Monitor Users” group.
First check to see what identity your ASP.NET worker process is running under. Eg. in this case the FF-Extranet-Prod application pool is running under an identity called: AppPoolUser
Next add this identity to the “Performance Monitor Users” group.
- Windows performance counters will not be collected if your application is deployed on a Windows Azure Website. Support for this scenario is on the backlog.
- To stop collecting these Windows performance counters remove the following line from the ApplicationInsights.config file:
- <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCollector.PerformanceCollectorModule, Microsoft.ApplicationInsights.Extensibility.PerfCollector" />