Application Insights overview

Application Insights is an extension of Azure Monitor and provides Application Performance Monitoring (also known as “APM”) features. APM tools are useful to monitor applications from development, through test, and into production in the following ways:

  1. Proactively understand how an application is performing.
  2. Reactively review application execution data to determine the cause of an incident.

In addition to collecting Metrics and application Telemetry data, which describe application activities and health, Application Insights can also be used to collect and store application trace logging data.

The log trace is associated with other telemetry to give a detailed view of the activity. Adding trace logging to existing apps only requires providing a destination for the logs; the logging framework rarely needs to be changed.

Application Insights provides other features including, but not limited to:

  • Live Metrics – observe activity from your deployed application in real time with no effect on the host environment
  • Availability – also known as “Synthetic Transaction Monitoring”, probe your applications external endpoint(s) to test the overall availability and responsiveness over time
  • GitHub or Azure DevOps integration – create GitHub or Azure DevOps work items in context of Application Insights data
  • Usage – understand which features are popular with users and how users interact and use your application
  • Smart Detection – automatic failure and anomaly detection through proactive telemetry analysis

In addition, Application Insights supports Distributed Tracing, also known as “distributed component correlation”. This feature allows searching for and visualizing an end-to-end flow of a given execution or transaction. The ability to trace activity end-to-end is increasingly important for applications that have been built as distributed components or microservices.

The Application Map allows a high level top-down view of the application architecture and at-a-glance visual references to component health and responsiveness.

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 do I use Application Insights?

Application Insights is enabled through either Auto-Instrumentation (agent) or by adding the Application Insights SDK to your application code. Many languages are supported and the applications could be on Azure, on-premises, or hosted by another cloud. To figure out which type of instrumentation is best for you, reference How do I instrument an application?.

The Application Insights agent or SDK pre-processes telemetry and metrics before sending the data to Azure where it's ingested and processed further before being stored in Azure Monitor Logs (Log Analytics). For this reason, an Azure account is required to use Application Insights.

The easiest way to get started consuming Application insights is through the Azure portal and the built-in visual experiences. Advanced users can query the underlying data directly to build custom visualizations through Azure Monitor Dashboards and Workbooks.

Consider starting with the Application Map for a high level view. Use the Search experience to quickly narrow down telemetry and data by type and date-time, or search within data (for example Log Traces) and filter to a given correlated operation of interest.

Jump into analytics with Performance view – get deep insights into how your Application or API and downstream dependencies are performing and find for a representative sample to explore end to end. And, be proactive with the Failure view – understand which components or actions are generating failures and triage errors and exceptions. The built-in views are helpful to track application health proactively and for reactive root-cause-analysis.

Create Azure Monitor Alerts to signal potential issues should your Application or components parts deviate from the established baseline.

Application Insights pricing is consumption-based; you pay for only what you use. For more information on pricing, see the Azure Monitor Pricing page and how to optimize costs.

How do I instrument an application?

Auto-Instrumentation is the preferred instrumentation method. It requires no developer investment and eliminates future overhead related to updating the SDK. It's also the only way to instrument an application in which you don't have access to the source code.

You only need to install the Application Insights SDK in the following circumstances:

To use the SDK, you install a small instrumentation package in your app and then instrument the web app, any background components, and JavaScript within the web pages. The app and its components don't have to be hosted in Azure. The instrumentation monitors your app and directs the telemetry data to an Application Insights resource by using a unique token. The effect on your app's performance is small; tracking calls are non-blocking and batched to be sent in a separate thread.

Integrated Auto-instrumentation is available for Azure App Service .NET, Azure App Service .NET Core, Azure Functions, and Azure Virtual Machines.

Azure Monitor Application Insights Agent is available for workloads running in on-premises virtual machines.

A detailed view of all Auto-instrumentation supported environments, languages, and resource providers are available here.

For other scenarios, the Application Insights SDK is required.

A preview Open Telemetry offering is also available.

Next steps

Troubleshooting

FAQ

Review frequently asked questions.

Microsoft Q&A questions forum

Post questions to the Microsoft Q&A answers forum.

Stack Overflow

Post coding questions to Stack Overflow using an Application Insights tag.

User Voice

Leave product feedback for the engineering team on UserVoice.