Virtual machine guest performance counters

The Azure Monitor Agent collects guest metrics or performance counters from Windows and Linux virtual machines. These metrics are collected from the guest operating system and are useful for monitoring virtual machine performance. The performance counters can be stored in an Azure Monitor Log Analytics workspace or an Azure Monitor workspace. For information on how to collect data from a virtual machine using Azure Monitor Agent, see Collect performance counters with Azure Monitor Agent. For information on how to install Azure Monitor Agent, see Install and manage the Azure Monitor Agent.

Platform metrics are metrics that are automatically collected by Azure Monitor for each resource type. For a complete list of platform metrics, see Azure Monitor supported metrics.

Performance counters

The following performance counters are collected by the Azure Monitor Agent for Windows and Linux virtual machines: The default sample frequency is 60 seconds. The sample frequency can be changed when creating or updating the data collection rule.

Windows performance counters

The following performance counters are collected from Windows virtual machines by the Azure Monitor Agent:

Performance Counter Category Default sample frequency
\Processor Information(_Total)\% Processor Time CPU 60
\Processor Information(_Total)\% Privileged Time CPU 60
\Processor Information(_Total)\% User Time CPU 60
\Processor Information(_Total)\Processor Frequency CPU 60
\System\Processes CPU 60
\Process(_Total)\Thread Count CPU 60
\Process(_Total)\Handle Count CPU 60
\System\System Up Time CPU 60
\System\Context Switches/sec CPU 60
\System\Processor Queue Length CPU 60
\Memory\% Committed Bytes In Use Memory 60
\Memory\Available Bytes Memory 60
\Memory\Committed Bytes Memory 60
\Memory\Cache Bytes Memory 60
\Memory\Pool Paged Bytes Memory 60
\Memory\Pool Nonpaged Bytes Memory 60
\Memory\Pages/sec Memory 60
\Memory\Page Faults/sec Memory 60
\Process(_Total)\Working Set Memory 60
\Process(_Total)\Working Set - Private Memory 60
\LogicalDisk(_Total)\% Disk Time Disk 60
\LogicalDisk(_Total)\% Disk Read Time Disk 60
\LogicalDisk(_Total)\% Disk Write Time Disk 60
\LogicalDisk(_Total)\% Idle Time Disk 60
\LogicalDisk(_Total)\Disk Bytes/sec Disk 60
\LogicalDisk(_Total)\Disk Read Bytes/sec Disk 60
\LogicalDisk(_Total)\Disk Write Bytes/sec Disk 60
\LogicalDisk(_Total)\Disk Transfers/sec Disk 60
\LogicalDisk(_Total)\Disk Reads/sec Disk 60
\LogicalDisk(_Total)\Disk Writes/sec Disk 60
\LogicalDisk(_Total)\Avg. Disk sec/Transfer Disk 60
\LogicalDisk(_Total)\Avg. Disk sec/Read Disk 60
\LogicalDisk(_Total)\Avg. Disk sec/Write Disk 60
\LogicalDisk(_Total)\Avg. Disk Queue Length Disk 60
\LogicalDisk(_Total)\Avg. Disk Read Queue Length Disk 60
\LogicalDisk(_Total)\Avg. Disk Write Queue Length Disk 60
\LogicalDisk(_Total)\% Free Space Disk 60
\LogicalDisk(_Total)\Free Megabytes Disk 60
\Network Interface(*) \Bytes Total/sec Network 60
\Network Interface(*) \Bytes Sent/sec Network 60
\Network Interface(*) \Bytes Received/sec Network 60
\Network Interface(*) \Packets/sec Network 60
\Network Interface(*) \Packets Sent/sec Network 60
\Network Interface(*) \Packets Received/sec Network 60
\Network Interface(*) \Packets Outbound Errors Network 60
\Network Interface(*) \Packets Received Errors Network 60

Next steps