Blog Post

Azure Observability Blog
5 MIN READ

Comprehensive VM Monitoring with OpenTelemetry performance counters

viviandiec's avatar
viviandiec
Icon for Microsoft rankMicrosoft
Nov 17, 2025

Monitoring virtual machines often requires multiple tools and manual investigation. You may see high CPU or memory usage, but identifying the process responsible usually means signing in to the VM and running diagnostic commands.

Azure Monitor already provides Guest OS performance monitoring through Log Analytics‑based metrics, trusted for its flexibility, deep integration, and advanced analytics, including custom performance counters, extended retention, and powerful KQL queries. Many customers use LA‑based metrics to correlate performance with other log data sources and build rich operational insights.

Today, we’re excited to introduce a new preview capability: OpenTelemetry (OTel) Guest OS metrics for VMs and Arc servers, with metric data stored in the metrics-optimized Azure Monitor Workspace (AMW). OTel provides a standards‑based pipeline with a unified schema, richer system and process counters, and streamlined integration with open‑source and cloud‑native observability tooling. It’s designed for simpler onboarding, cost‑efficient metric storage, and more granular visibility into what’s happening inside the VM.

What are OpenTelemetry Guest OS metrics

OTel Guest OS metrics are system and process‑level performance counters collected from inside a VM. This includes CPU, memory, disk I/O, network, and per‑process details such as CPU percent, memory percent, uptime, and thread count. This level of visibility helps you diagnose issues without signing into the VM.

Why They Matter

Azure Monitor continues to support Guest OS metrics through Log Analytics, and you now have the option to use OTel‑based Guest OS metrics. OTel offers richer insights, faster query performance, and lower cost, and is a good fit when you want a modern, standards‑based pipeline with deeper system visibility.

Key Benefits
BenefitDescription
Unified data modelConsistent metric names and schema across Windows and Linux for easier, reusable queries and dashboards
Richer, simplified countersMore system and process metrics (e.g., per‑process CPU, memory, disk I/O) and consolidation of legacy counters into clearer OTel metrics.
Easy onboardingCollect OTel metrics with minimal setup.
Flexible visualizationUse the Azure portal, Metrics Explorer, or Azure Monitor Dashboards with Grafana.
Cost‑efficient performanceStore metrics in Azure Monitor Workspace instead of Log Analytics ingestion for lower cost and faster queries.
When to use LA‑based metrics (GA) vs OTel‑based metrics (Preview)
LA-based metrics (GA)OTel-based metrics (Preview)
  • Custom performance counters or extended retention
  • Advanced KQL analytics and log‑metric correlation
  • A mature, fully supported pipeline for operational analytics
  • A standards‑based, unified schema across platforms
  • Easier onboarding and broader system/process coverage
  • Cost‑efficient metric storage with improved query performance

We recommend evaluating your requirements to determine which approach best fits your needs. LA-based metrics remain the foundation for customers who need advanced analytics and correlation, while OTel-based metrics open new possibilities for modern VM observability.

Onboarding VMs to OpenTelemetry performance counters

Onboarding your virtual machines and Arc servers to OpenTelemetry-based counters is now both cost-efficient and easier than ever. With the new onboarding experience, you can enable guest-level metrics using a lightweight, standards-based OTel pipeline with no complex setup required. These system-level counters are available at no additional cost and provide deep visibility into CPU, memory, disk, network, and process activity from inside the VM. Azure Monitor automatically configures your Data Collection Rules (DCRs) to route these OpenTelemetry counters through the Monitor pipeline, ensuring you get full monitoring coverage with minimal configuration.

Single-VM onboarding screen showing the option to enable OpenTelemetry-based counters

Additionally, you can also onboard your VMs at scale using the new Monitoring Coverage experience or Essential Machine Management (EMM). For teams managing large fleets of virtual machines, these capabilities turn onboarding into a one-click operation, eliminating the need to repeat manual steps for each machine. This is especially valuable in enterprises or environments with dynamic VM creation, where maintaining consistent visibility across every machine is critical for performance, compliance, and troubleshooting.

Monitoring Coverage screen showing the ability to enable OpenTelemetry-based counters at scale

After onboarding at scale, you can further customize your monitoring. By editing the Data Collection Rule (DCR) created during onboarding, you can collect additional metrics and logs, then automatically apply those updates across all VMs associated with that DCR. This allows you to extend monitoring coverage beyond the default counters and adapt to your observability as your environment evolves.

New Capabilities Powered by OpenTelemetry

New VM monitoring experience powered by OpenTelemetry (preview)

We're excited to announce the public preview of the enhanced monitoring experience for Azure Virtual Machines (VMs) and Arc servers. This redesign brings comprehensive monitoring capabilities in a single, streamlined view, helping you more efficiently observe, diagnose, and optimize your virtual machines.

The new experience offers two levels of insight within one unified interface:

  • Basic view (Host OS based): Available for all Azure VMs with no configuration required. This view surfaces key host level metrics including CPU, disk, and network performance for quick health checks.
  • Detailed view (Guest OS based): Requires a simple onboarding step and is available at no additional cost. Azure Monitor already provides a GA detailed view powered by Log Analytics based Guest OS metrics, and this remains fully supported. This preview option is powered by OTel Guest OS metrics to provide expanded metric coverage and the new, streamlined monitoring experience introduced above

Detailed view (Guest OS based with OTel) and enhanced monitoring experience for VMs

You can access the new experience directly in the Azure portal under Virtual Machine → Monitoring → Insights.

Building Custom Dashboards with Azure Monitor Dashboards in Grafana

Azure Monitor Dashboards with Grafana lets you build custom visualizations on top of OTel Guest OS metrics. In addition to the out-of-the-box VM monitoring experience, you can create tailored dashboards to analyze the specific system or process-level signals that matter most to your workloads.

For example, you can build a dashboard that breaks down CPU, memory, disk, and network usage at the process level. This helps you quickly identify unusual behavior or resource hotspots without signing in to the VM. Learn more.

Custom Grafana dashboard to analyze process-level signals (CPU, memory, disk)
Query-based metric alerts (preview)

Azure Monitor now supports PromQL-based metric alerts for OTel metrics stored in Azure Monitor Workspace, enabling flexible and powerful query-driven alerting.

For example, you can configure an alert to notify you when a specific process shows unusual CPU usage, allowing you to detect issues earlier and take action before they impact users.

PromQL based metric alert that triggers when the backupdatawarehouse.exe process exceeds 80% memory usage

Get Started

Explore the new OpenTelemetry-powered experiences today:

We are also starting a limited public preview of application monitoring with OpenTelemetry signal collection from Azure VMs, VMSS and Arc Server. Learn more.

Together, these previews mark a major step toward a unified and open monitoring platform designed to make observability simpler, faster, and aligned with open standards across every layer of your environment.

Updated Nov 17, 2025
Version 1.0
No CommentsBe the first to comment