Application Insights overview
Azure Monitor Application Insights, a feature of Azure Monitor, excels in Application Performance Management (APM) for live web applications.
Experiences
Application Insights provides many experiences to enhance the performance, reliability, and quality of your applications.
Investigate
- Application dashboard: An at-a-glance assessment of your application's health and performance.
- Application map: A visual overview of application architecture and components' interactions.
- Live metrics: A real-time analytics dashboard for insight into application activity and performance.
- Transaction search: Trace and diagnose transactions to identify issues and optimize performance.
- Availability view: Proactively monitor and test the availability and responsiveness of application endpoints.
- Failures view: Identify and analyze failures in your application to minimize downtime.
- Performance view: Review application performance metrics and potential bottlenecks.
Monitoring
- Alerts: Monitor a wide range of aspects of your application and trigger various actions.
- Metrics: Dive deep into metrics data to understand usage patterns and trends.
- Diagnostic settings: Configure streaming export of platform logs and metrics to the destination of your choice.
- Logs: Retrieve, consolidate, and analyze all data collected into Azure Monitoring Logs.
- Workbooks: Create interactive reports and dashboards that visualize application monitoring data.
Usage
- Users, sessions, and events: Determine when, where, and how users interact with your web app.
- Funnels: Analyze conversion rates to identify where users progress or drop off in the funnel.
- Flows: Visualize user paths on your site to identify high engagement areas and exit points.
- Cohorts: Group users by shared characteristics to simplify trend identification, segmentation, and performance troubleshooting.
Code analysis
- Profiler: Capture, identify, and view performance traces for your application.
- Code optimizations: Harness AI to create better and more efficient applications.
- Snapshot debugger: Automatically collect debug snapshots when exceptions occur in .NET application
Logic model
The logic model diagram visualizes components of Application Insights and how they interact.
Note
Firewall settings must be adjusted for data to reach ingestion endpoints. For more information, see IP addresses used by Azure Monitor.
Supported languages
This section outlines supported scenarios.
For detailed information about instrumenting applications to enable Application Insights, see data collection basics.
Automatic instrumentation (enable without code changes)
Manual instrumentation
OpenTelemetry Distro
Application Insights SDK (Classic API)
Client-side JavaScript SDK
Supported platforms and frameworks
This section lists all supported platforms and frameworks.
Azure service integration (portal enablement, Azure Resource Manager deployments)
- Azure Virtual Machines and Azure Virtual Machine Scale Sets
- Azure App Service
- Azure Functions
- Azure Spring Apps
- Azure Cloud Services, including both web and worker roles
Logging frameworks
ILogger
- Log4Net, NLog, or System.Diagnostics.Trace
Log4J
, Logback, or java.util.logging- LogStash plug-in
- Azure Monitor
Export and data analysis
Unsupported SDKs
Many community-supported Application Insights SDKs exist. Azure Monitor only provides support when you use the supported instrumentation options listed in this article.
We're constantly assessing opportunities to expand our support for other languages. For the latest news, see Azure updates for Application Insights.
Frequently asked questions
This section provides answers to common questions.
How do I instrument an application?
For detailed information about instrumenting applications to enable Application Insights, see data collection basics.
How do I use Application Insights?
After enabling Application Insights by instrumenting an application, we suggest first checking out Live metrics and the Application map.
What telemetry does Application Insights collect?
From server web apps:
- HTTP requests.
- Dependencies. Calls to SQL databases, HTTP calls to external services, Azure Cosmos DB, Azure Table Storage, Azure Blob Storage, and Azure Queue Storage.
- Exceptions and stack traces.
- Performance counters: Performance counters are available when using:
- Azure Monitor Application Insights agent
- Azure monitoring for VMs or virtual machine scale sets
- Application Insights
collectd
writer.
- Custom events and metrics that you code.
- Trace logs if you configure the appropriate collector.
From client webpages:
Uncaught exceptions in your app, including information on
- Stack trace
- Exception details and message accompanying the error
- Line & column number of error
- URL where error was raised
Network Dependency Requests made by your app XHR and Fetch (fetch collection is disabled by default) requests, include information on:
- Url of dependency source
- Command & Method used to request the dependency
- Duration of the request
- Result code and success status of the request
- ID (if any) of user making the request
- Correlation context (if any) where request is made
User information (for example, Location, network, IP)
Device information (for example, Browser, OS, version, language, model)
Session information
Note
For some applications, such as single-page applications (SPAs), the duration may not be recorded and will default to 0.
For more information, see Data collection, retention, and storage in Application Insights.
From other sources, if you configure them:
How many Application Insights resources should I deploy?
To understand the number of Application Insights resources required to cover your application or components across environments, see the Application Insights deployment planning guide.
How can I manage Application Insights resources with PowerShell?
You can write PowerShell scripts by using Azure Resource Monitor to:
- Create and update Application Insights resources.
- Set the pricing plan.
- Get the instrumentation key.
- Add a metric alert.
- Add an availability test.
You can't set up a metrics explorer report or set up continuous export.
How can I query Application Insights telemetry?
Use the REST API to run Log Analytics queries.
Can I send telemetry to the Application Insights portal?
We recommend that you use our SDKs and use the SDK API. There are variants of the SDK for various platforms. These SDKs handle processes like buffering, compression, throttling, and retries. However, the ingestion schema and endpoint protocol are public.
How long does it take for telemetry to be collected?
Most Application Insights data has a latency of under 5 minutes. Some data can take longer, which is typical for larger log files. See the Application Insights service-level agreement.
How does Application Insights handle data collection, retention, storage, and privacy?
Collection
Application Insights collects telemetry about your app, including web server telemetry, web page telemetry, and performance counters. This data can be used to monitor your app's performance, health, and usage. You can select the location when you create a new Application Insights resource.
Retention and Storage
Data is sent to an Application Insights Log Analytics workspace. You can choose the retention period for raw data, from 30 to 730 days. Aggregated data is retained for 90 days, and debug snapshots are retained for 15 days.
Privacy
Application Insights doesn't handle sensitive data by default, as long as you don't put sensitive data in URLs as plain text and ensure your custom code doesn't collect personal or other sensitive details. During development and testing, check the sent data in your IDE and browser's debugging output windows.
For archived information on this topic, see Data collection, retention, and storage in Application Insights.
What is the Application Insights pricing model?
Application Insights is billed through the Log Analytics workspace into which its log data ingested. The default Pay-as-you-go Log Analytics pricing tier includes 5 GB per month of free data allowance per billing account. Learn more about Azure Monitor logs pricing options.
Are there data transfer charges between an Azure web app and Application Insights?
- If your Azure web app is hosted in a datacenter where there's an Application Insights collection endpoint, there's no charge.
- If there's no collection endpoint in your host datacenter, your app's telemetry incurs Azure outgoing charges.
This answer depends on the distribution of our endpoints, not on where your Application Insights resource is hosted.
Do I incur network costs if my Application Insights resource is monitoring an Azure resource (that is, telemetry producer) in a different region?
Yes, you may incur more network costs, which vary depending on the region the telemetry is coming from and where it's going. Refer to Azure bandwidth pricing for details.
Help and support
Azure technical support
For Azure support issues, open an Azure support ticket.
Microsoft Q&A questions forum
Post general questions to the Microsoft Q&A answers forum.
Stack Overflow
Post coding questions to Stack Overflow by using an azure-application-insights
tag.
Feedback Community
Leave product feedback for the engineering team in the Feedback Community.
Troubleshooting
Review dedicated troubleshooting articles for Application Insights.
Next steps
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for