Azure Monitor is a comprehensive solution that can be used for collecting and analyzing data from your applications and services. It is adept at collecting monitoring data, which is then analyzed to let you know the performance of your applications and identify issues if any.

Azure Monitor proactively monitors the performance, availability, and usage of your applications and services irrespective of whether such applications or services are hosted on Azure or on-premises.

In this Azure Monitor tutorial, we’ll discuss how to set it up, key features to leverage, and pros and cons to consider as well. You can stay up-to-date here with any new features or changes to Azure Monitor.

Azure Monitor Components

The diagram below provides a high-level overview of the components of Azure Monitor.

Azure Monitor overview

Figure 1: Azure Monitor Components Diagram

But what exactly does this solution help you achieve? Before delving into some of its components in detail, here’s what you can do with Azure Monitor:

  • Take advantage of Application Insights to detect and diagnose issues across applications running on Azure.
  • Take advantage of Log Analytics to analyze monitoring data.
  • Get support from Dashboards and Workbooks for creating visualizations.

Data Collection

Since you can host several diverse cloud-based services on Azure, it makes sense to have a monitoring solution in place that is adept at monitoring applications and services running on Azure. 

Azure Monitor is a native monitoring solution for Azure that can collect data in the background in the form of metrics and logs from applications or Azure resources. This data can later be used to create dashboards that provide a way for you to visualize the data collected and act accordingly if needed.

Azure Monitor collects data from various sources, which can be categorized into the following tiers:

  • Application Monitoring Data includes the data related to the performance and functionality of an application.
  • Azure Resource Monitoring Data includes data related to the operation of an Azure resource.
  • Azure Subscription Monitoring Data includes the data related to the operation and management of an Azure subscription.
  • Azure Tenant Monitoring Data includes data related to Tenant-level Azure services.

How Does Azure Monitor Work?

The data collected by Azure Monitor can be broadly categorized into two core concepts, metrics and logs, that are explained below.

Metrics

Azure Metrics provide real-time information about specific resources. These are numerical values that represent aspects of a resource at a given point of time, such as CPU utilization, performance metrics for Azure SQL Database, deadlocks, disk IOPS, number of connections, etc. The image below shows how Metrics appear on-screen.

Monitoring Azure Resources

Figure 2: Monitoring Azure Resources

Logs

Logs comprise data that are collected from various sources and organized into records. These sources can be the events on your Windows and Linux machines or network devices, IIS logs, etc. 

Log data can be queried, consolidated, and analyzed. The Kusto query language supported by Azure Data Explorer can further be leveraged for aggregations, joins, and smart analytics on the data.

Azure Monitor Insights

Insights offers a customized monitoring experience of the applications and services deployed and running on Azure. The data collected is aggregated and stored on the Azure Monitor data platform and then used for analysis, visualization, and alerting.

Application Insights

You can leverage Application Insights, an extensible Application Performance Management (APM) service, to monitor applications and services written in .NET, Java EE, Node.js, etc. These applications can be hosted on-premises, hybrid systems, or public clouds. Note that these applications and services can be hosted anywhere, i.e., they don’t necessarily have to be hosted on Azure.

Application Insights can detect the following:

  • Request rates
  • Response times
  • Failure rates
  • Performance counters
  • Page load times

Azure Monitor for Containers

When you’re running your application in a production cluster, it is imperative that you monitor your containers at regular intervals. This is where Azure Monitor for Containers comes to the rescue, as it provides a comprehensive monitoring experience with performance visibility, enabling you to get memory and processor metrics from the controller and nodes. The clusters in question can be running in either Windows or Linux operating systems. 

Azure Monitor for containers is a feature designed to monitor the performance of container workloads that have been deployed on Azure Container Instances or Kubernetes Clusters hosted on Azure Kubernetes Service.

Azure Monitor for Virtual Machines

Azure Monitor for Virtual Machines monitors your Windows and Linux virtual machines, Azure virtual machines, and virtual machine scale sets at scale and can be used to gain insight into the performance and health of all of these. It monitors their processes and dependencies on other resources and external processes and is adept at identifying performance bottlenecks and network issues.

Azure Monitor for Virtual Machines stores data captured in Azure Monitor Logs and can then be used for powerful aggregation and filtering to analyze a trend later on.

Azure Monitor for Networks

Azure Monitor for Networks provides comprehensive insights into the metrics of deployed network resources and resource dependencies for all resources that have been deployed. It provides an elegant way of visualizing the metrics pertaining to resources such as resource health alerts.

Azure Monitor for Azure Cosmos DB

Cosmos DB is Microsoft’s proprietary multi-model database service that is horizontally scalable and schema-agnostic. It is a NoSQL database, which is a good choice for any serverless application because it is high-performant. 

You can take advantage of Azure Monitor to gain insights into the operational health of your Azure Cosmos DB resources, analyze this data, and then set alerts based on this data.

Azure Monitor Tutorial

To get started with Azure Monitor, open the Azure Portal, and then click on Monitor. This will bring up Azure Monitor, as seen in the screenshot below.

Azure portal

Figure 3: Getting started with Azure Monitor

On the left panel, you will see the following:

  • Activity log describes all actions that occur on your subscription and provides insight into subscription-level events. You can query the activity log to know specific events as well.
  • Alerts enable you to create, view, and manage alerts.
  • Metrics (as explained above) 
  • Logs (as explained above)
  • Service Health is a global view of the health of all Azure services; it provides personalized dashboards that can track the health of your services running on Azure.
  • Workbooks can help you to quickly and easily make intelligent decisions about your infrastructure, providing a flexible canvas that can be used for data analysis as well as to create rich visual reports.

Note: Views are used to display log data in Azure Monitor. You can leverage the View Designer in Azure Monitor to create custom views.
Views have also now been transitioned to Workbooks.

Visualization with Azure Monitor

Azure Dashboards

Azure Dashboards provide an organized view of all cloud resources on Azure. You can edit a dashboard or create and customize additional dashboards and publish them for other users to access.

The following image illustrates an Azure Dashboard.

Azure Monitor data visialization

Figure 4: Visualizing data from Azure Monitor

Power BI

Azure monitor Power BI Visualization

Figure 5: Example of Power BI Visualization

Power BI offers insights on an organization’s data, providing interactive and intuitive visualizations and business-intelligence capabilities. You can take advantage of Power BI for creating business-centric dashboards and reports or even for analyzing KPI trends. It can combine data from several data sources and then consolidate it to create reports that can be shared on the web and mobile devices.

Summary

In this Azure Monitor tutorial, we learned that it’s adept at collecting, analyzing, and then acting on the telemetry data residing on Azure as well as on-premises environments. It is adept at maximizing the performance and availability of applications and identifying problems proactively at the drop of a hat. 

You can also integrate Azure Monitor with other systems so that the data collected by Azure Monitor can be used by custom solutions.

Learn More Here:

AWS CloudWatch Metrics and Dashboards

Azure & GCP Features Overview: Kubernetes & Containers

Epsagon’s Applied Observability for Azure and Kubernetes

Cloud Container Services Comparison: AWS vs. Azure vs. GCP