You can now monitor performance counters for Azure Web Apps using Visual Studio Application Insights. Until recently, Performance Counters such as CPU and network usage weren’t available on the Azure portal when monitoring your app. This is because Azure Web Apps don’t run on their own machines. Our new Aggregate Metrics package adds this telemetry, so you can now monitor your app’s use of resources as workload varies.
To get started, simply install the Aggregate Metrics prerelease NuGet package in your app. This package is now in the SDK Labs feed. You should then be able to view the below performance charts in your Application Insights Metrics Explorer within the Azure portal.
Azure Web Apps have continued to allow you to host whatever web app, website, and API in the Azure cloud, all while maintaining a plethora of capabilities such as Visual Studio integration, ease of deployment, and agility. In a nutshell, Azure Web Apps are simple to deploy and run.
However, there are limitations when it comes to monitoring your Azure Web App’s performance while it runs on the cloud. Web pages and apps are run in a sandbox environment, separating them from other apps running on the same machine. For developers, this sandbox is ultimately a tradeoff for the low monetary cost of using Azure Web Apps. The sandbox also prevents your app from accessing Performance Counters and using Performance Monitor. On your desktop, Performance Monitor provides a comprehensive selection of metrics with easy to interpret visualization
Until now, there were few metrics available for gaining insights on the performance of your Azure Web App, and those few metrics available gave nowhere near the comprehensiveness of Performance Monitor.
The Application Insights team saw the need for more complete feedback on web app performance, and we’re proud to announce that we’ve added a solution to Application Insights’ SDK Labs that collects Performance Counters and visualizes them on the Azure portal through Application Insights. The Aggregate Metrics solution contains several different Performance Counters, such as memory being used and the percentage of the CPU’s processor being used. Currently, Performance Counters currently provide historical data, with Live Metrics Stream implementation planned for future development.
Custom Performance Counters
We have also implemented custom performance counters, such as thread and handle count, to provide even more detailed insights into app performance. These counters are specific and can be added independently to a project based on your app’s needs. At the moment there are few custom counters, as their availability is limited by provided content from the Azure Web Apps team. To get started with Custom Counters, you only need to adjust the ApplicationInsights.config file, just like would for other performance monitors.
Microsoft Intern Program
Performance Counters have been an ongoing project developed by two of Application Insights’ summer interns: myself, Mackenzie Frackleton, and Mateo Torres Ruiz. Click through to our GitHub profiles to see our latest developments.
Summary
Performance Counters are now available to provide metrics for Azure Web App telemetry. We always want to hear your feedback, so please visit the Application Insights SDK Labs repository here for issues or feature requests. The Application Insights team as a whole is committed to providing quality tools for developers. Any additional feedback or new feature recommendations is welcome.