Azure Application Insights dashboard
This SquaredUp dashboard uses the Azure plugin to surface key performance metrics from Application Insights. Common user experience metrics are all provided out of the box, and we can query, summarize, and analyse the raw logs and traces.
Accessing core application metrics that perform custom queries against the underlying Logs workspace isn’t a difficult task in the Azure Portal. However, building an Azure Application Insights dashboard that lets you bring these two sources of data together certainly can be difficult.
Being told when a certain monitor is outside of a desired threshold or when the number of unexpected entries in a Logs table exceeds a limit is also a vital step in a thorough monitoring approach, but Azure Alerts comes with a cost and is cumbersome to configure.
It's also not unusual in a world of complex, distributed applications that each component of the application might be storing data in different Application Insights and Logs workspaces, and even in different regions, subscriptions, and tenants. Getting a singular view or compiling a complete dataset is, therefore, often out of reach with the native tools.
SquaredUp lets you build a state-of-the-art Azure Applications Insights dashboard with ease, as common user experience metrics are all out of the box. Plus, by using configurable KQL data streams you can also query, summarize, and analyze the raw logs and traces being captured in the background.
When you’re building a dashboard in SquaredUp, there are never any tool-specific steps to take to craft the perfect visualization, regardless of the data source. Displaying the response time from an availability test alongside the exceptions count taken from a complex KQL query doesn’t require any heavy lifting. Then, when you need to take that a step further to calculate averages across different time periods or combine metrics into a single graph, it’s just a couple of extra clicks to bring more data into scope.
SquaredUp also breaks down the silos that Azure creates between different Application Insights and Logs workspaces. When getting your answer involves aggregating complex data sets from multiple tables, our SQL Analytics feature lets you bring in those disparate data sets and work with them using a familiar query language to create a new unified output.
There are some core application metrics available out of the box with Application Insights that provide a good summary of how your application service is performing. The tiles in the left column display some of these common metrics in easy-to-understand line graphs
- Availability Test Duration reveals the time taken for your availability tests to complete. These tests will commonly check that your application is available from various Azure datacentres, and the test duration is a good measure of end user experience.
- Availability Percentage displays the overall availability measure of your application. If there are no issues, you’d expect to see a flat line sitting at 100%. Any test failures will be surfaced as drops below 100%.
- Available Memory is typically an infrastructure metric but is always a good indicator of how well your hosting service is performing. Spikes or dips in this graph could point at a number of issues.
- Process CPU Percentage is also a good indicator of hosting health, alongside Available Memory.
The other tiles on this dashboard make use of a configurable data stream that performs a custom KQL query against the Logs workspace that holds all of the data for the Application Insights instance.
This query returns some standard data being collected by Application Insights relating to requests being made to the application. This data is then filtered or aggregated to provide the remaining visualizations.
- Average Request Duration highlights the average time it takes the application to serve a request. This scalar value is created by aggregating the ‘duration’ values and returning an average.
- Highest Request Duration highlights the time it took to process the longest running request. Like the previous tile, the ‘duration’ values are aggregated and the maximum is returned.
- Requests / Hour highlights traffic over time, but grouped into hourly blocks. This is achieved by grouping the data on the timestamp value, by hour, and then returning a count of events for each hourly block. To ensure the data remains in order, the grouped data is then sorted by the new hourly timestamp.
- Similarly, the Performance Buckets donut tile uses grouping, and then an aggregated count. This metric is useful to understand the various performance cohorts, highlighting how common it is for requests to take certain periods of time to complete.
- Finally, the Events by Function donut groups and counts events based on the process name.
Get the dashboard
As this Azure Application Insights dashboard makes use of custom KQL queries, it isn’t included as standard as part of the Azure data source, but creating it yourself is quick and easy.
To see what other dashboards you can create, check out our Dashboard Gallery.