Monitor Azure web app performance
In the Azure Portal you can set up application performance monitoring for your Azure web apps. Azure Application Insights instruments your app to send telemetry about its activities to the Application Insights service, where it is stored and analyzed. There, metric charts and search tools can be used to help diagnose issues, improve performance, and assess usage.
Run time or build time
You can configure monitoring by instrumenting the app in either of two ways:
- Run-time - You can select a performance monitoring extension when your web app is already live. It isn't necessary to rebuild or re-install your app. You get a standard set of packages that monitor response times, success rates, exceptions, dependencies, and so on.
- Build time - You can install a package in your app in development. This option is more versatile. In addition to the same standard packages, you can write code to customize the telemetry or to send your own telemetry. You can log specific activities or record events according to the semantics of your app domain.
Run time instrumentation with Application Insights
If you're already running a web app in Azure, you already get some monitoring: request and error rates. Add Application Insights to get more, such as response times, monitoring calls to dependencies, smart detection, and the powerful Log Analytics query language.
Select Application Insights in the Azure control panel for your web app.
- Choose to create a new resource, unless you already set up an Application Insights resource for this app by another route.
Instrument your web app after Application Insights has been installed.
Enable client side monitoring for page view and user telemetry.
- Select Settings > Application Settings
Under App Settings, add a new key value pair:
- Save the settings and Restart your app.
- Monitor your app. Explore the data.
Later, you can build the app with Application Insights if you want.
How do I remove Application Insights, or switch to sending to another resource?
- In Azure, open the web app control blade, and under Development Tools, open Extensions. Delete the Application Insights extension. Then under Monitoring, choose Application Insights and create or select the resource you want.
Build the app with Application Insights
Application Insights can provide more detailed telemetry by installing an SDK into your app. In particular, you can collect trace logs, write custom telemetry, and get more detailed exception reports.
In Visual Studio (2013 update 2 or later), configure Application Insights for your project.
Right-click the web project, and select Add > Application Insights or Configure Application Insights.
If you're asked to sign in, use the credentials for your Azure account.
The operation has two effects:
- Creates an Application Insights resource in Azure, where telemetry is stored, analyzed and displayed.
- Adds the Application Insights NuGet package to your code (if it isn't there already), and configures it to send telemetry to the Azure resource.
- Test the telemetry by running the app in your development machine (F5).
- Publish the app to Azure in the usual way.
How do I switch to sending to a different Application Insights resource?
- In Visual Studio, right-click the project, choose Configure Application Insights and choose the resource you want. You get the option to create a new resource. Rebuild and redeploy.
Explore the data
- On the Application Insights blade of your web app control panel, you see Live Metrics, which shows requests and failures within a second or two of them occurring. It's very useful display when you're republishing your app - you can see any problems immediately.
Click through to the full Application Insights resource.
You can also go there either directly from Azure resource navigation.
Click through any chart to get more detail:
You can customize metrics blades.
Click through further to see individual events and their properties:
Notice the "..." link to open all properties.
You can customize searches.
For more powerful searches over your telemetry, use the Log Analytics query language.
- Run the profiler on your live app.
- Azure Functions - monitor Azure Functions with Application Insights
- Enable Azure diagnostics to be sent to Application Insights.
- Monitor service health metrics to make sure your service is available and responsive.
- Receive alert notifications whenever operational events happen or metrics cross a threshold.
- Set up Availability web tests to be alerted if your site is down.