You may have come across Application Insights before, but for those of you that haven’t it’s basically an extensible Application Performance Management (APM) service that helps you to continually improve performance and usability. It can be used to monitor a live web app and automatically detect performance anomalies. It also includes powerful analytics tools to assist in diagnosing issues and to understand app usage, as well as allowing you to monitor and analyse telemetry data from mobile apps by integrating with Visual Studio App Center (to be covered in a future blog).
It’s worth noting that multiple platforms are supported including .NET, Node.js and Java and the app can be hosted in the cloud or on-premises.
If you’ve not used Application Insights before, you’ll be pleased to hear it’s a simple process to start extracting value out of it. It simply requires a small package to be added to your app and an Application Insights resource to be created within the Azure Portal. You’ll also find that background components, as well as the web apps can also be monitored.
Web tests can then be created to send periodic requests to your web services. The performance overhead is very small and calls are sent as non-blocking and are batched and sent in a separate thread.
But that’s not all it can do. Take a look at what other nifty things you can do with Application Insights:
- Request and review response and failure rates enabling you to understand which pages are most popular, at what times of day and the location of your users
- See whether external services are causing bottlenecks
- Receive exception reporting with the ability to drill down into the stack trace
- Gain visibility of performance counters such as CPU, memory and network usage
- Access diagnostic trace logs from your app to assist with correlating trace events with requests
- View custom events and metrics that you can add to your app to track specific events such as certain buttons being pressed, e.g. items added to basket and the checkout process isn’t completed
Application Insights supports Smart Detection which means it will alert you to potential performance problems in your app. For instance, you’ll receive a notification if there is a sudden rise in failures or abnormal patterns. The Application Insights Profiler Tool can be utilised to view detailed profiles of live requests from your app.
As well as receiving smart detection alerts, Application Insights can provide various forms of usage analysis to allow you to gain powerful insights into how users are using your app. It can highlight which features of your app are most popular and provide the knowledge to allow you to make informed decisions as to the next development priorities.
Various metrics are provided by Application Insights to help you with performance issues or understand trends within your app. Here are just a few of them:
Live Metrics Stream – this will show you how your app is being used in real-time which can be especially useful when validating a recent release fix or investigating an issue that can only be replicated within the live environment.
Application Map – this can help you identify performance bottlenecks or frequent failures within the components of your app. Each element is represented in a graphical format in the Azure Portal where health and status are reported.
REST API – using REST API, you’ll be able to develop your own solutions.
ANS GLASS utilises Application Insights within various components of the solution including the Web Portal and mobile backend and we have found that Application Insights has been invaluable when troubleshooting issues.
Hopefully you’ll now have a clearer understanding of what Application Insights are and how it can be used. I’ve personally found it to be a powerful analytics and diagnostic tool to assist with troubleshooting and application usage and it’s certainly been a valuable solution when it’s applied to a web or mobile app.
If you’d like to find out more about how Application Insights work, click here.
Posted by Tom Barrand