Application Insights – Part 1: The Basics

This series of blog posts will tell you everything you need to know about application insights.

Part 1: The Basics
Part 2: Is Application Insights really that “easy to add”?
Part 3: Is Application Insights really that “easy to use”?
Part 4: Application Monitoring with Application Insights
Part 5: Troubleshooting Failures with Application Insights
Part 6: Troubleshooting Performance Problems with Application Insights
Part 7: Availability Monitoring and Web-Testing with Application Insights
Part 8: Extending the Power of Application Insights with Glimpse and PowerBI

 

Part 1: The Basics

Part one goes over what Application Insights is and what it does. We will look at what it claims to be and how that transitions into real-life scenarios.

Application Insights is an application monitoring service that is hosted in the Microsoft Azure cloud. It provides a rest API and SDKs for application instrumentation and a backend that collects data and creates reports and dashboards. With Application Insights you can instrument any type of application independently of device, platform or programming framework and language.

The basic workflow is that an application sends telemetry data (ancient greek: “tele” = distant, “metron” = metric) to a backend in the Azure cloud. The application can be anything from a mobile app, a Windows client, an on-premise or cloud service or any other type of application. The backend is always hosted in the Azure cloud, there is no other possiblity at the time of writing. The telemetry data that is sent to the backend can be  typical monitoring metrics (Requests per Second, Page Views, Users), infrastructure data (CPU, Memory, etc) or application data (exceptions, execution times). Depending on the technology to be instrumented many of these metrics will be collected out-of-the-box. However, it is always possible to manually instrument the application or even send custom metrics to the backend. Once the data is available there are numerous ways to use it:

  • Analyze it in the Azure Portal
  • Export the data
  • Run queries in Visual Studio
  • Define alert rules on the data (see Part 4)
  • Use it during debugging (e.g. with Glimpse, see Part 8)
  • Feed the data to PowerBI to create reports and dashboards (See Part 8)

The following blog posts will cover all of the possibilites from the list.

The screenshots below shows some of the charts that Application Insights ships out-of-the-box:

dash_pageviews_thumb2

Total page views, number of users/sessions and most read blog posts for http://www.manuelmeyer.net

 

dash_usage_thumb1

Usage Summary

 

dash_avgpageloadtable_thumb2

Average Page Load Time by Operation

 

dash_search_thumb1

Metric Search

 

It is even possible to add Application Insights to PowerBI for a super-sexy dashboard (see part 8 for details):

PowerBI

Application Insights metrics can be collected from any device or platform. Monitoring includes all layers from user to application, platform and even infrastructure.

 

image_thumb[3]

The following list explains some examples of the data that can be collected and what kind of insights could be gained from it.

image_thumb[5]

Pricing:

There are 3 different service levels for application insights at the time of writing. They have price tags at FREE, around 20.- USD and around 100.- USD. The differences can be found in the number of datapoints that can be collected during one month and the data retention period. However, even with the free-to-use version, the quota is in the millions of data points. Another restriction is that the export functionality is not available in the free tier.

The graphic below shows the differences between the pricing plans at the time of writing (Feb 2016)

image_thumb[7]

The next post discusses whether Application Insights is as “easy to add” as it promises:

Part 2: Is Application Insights really that “easy to add”?