In this series, we took a look at the metrics we’re able to collect via Azure Monitor Logs (aka Log Analytics) and Azure Metrics.
I wanted to provide a few tables that show metrics available in each tool side-by-side, to make it easier to reference.
This first table shows when you might use metrics vs logs.
Attribute | Metrics | Logs |
---|---|---|
Benefits | Lightweight and capable of near-real time scenarios such as alerting. Ideal for fast detection of issues. | Analyzed with rich query language. Ideal for deep analysis and identifying root cause. |
Data | Numerical values only | Text or numeric data |
Structure | Standard set of properties including sample time, resource being monitored, a numeric value. Some metrics include multiple dimensions for further definition. | Unique set of properties depending on the log type. |
Collection | Collected at regular intervals. | May be collected sporadically as events trigger a record to be created. |
View in Azure portal | Metrics Explorer | Log Analytics |
Data sources include | Platform metrics collected from Azure resources. Applications monitored by Application Insights. Custom defined by application or API. | Application and Diagnostics Logs. Monitoring solutions. Agents and VM extensions. Application requests and exceptions. Azure Security Center. Data Collector API. |
This next table shows all of the performance counters available, between Azure Metrics and Azure Monitor Logs.
Counter Category | Azure Metrics (VM Host) | Azure Metrics (Guest OS) | Azure Monitor Logs (aka Log Analytics) |
---|---|---|---|
CPU | Percentage CPU CPU Credits Remaining CPU Credits Consumed | \Process(_Total)\Handle Count \Process(_Total)\Thread Count \Process(_Total)\Working Set \Process(_Total)\Working Set - Private \Processor Information(_Total)\% Privileged Time \Processor Information(_Total)\% Processor Time \Processor Information(_Total)\% User Time \Processor Information(_Total)\Processor Frequency \System\Context Switches/sec \System\Processes \System\Processor Queue Length \System\System Up Time | Windows: Processor(_Total)\% Processor Time System(*)\Processor Queue Length Linux: Processor(*)\% Processor Time Processor(*)\% Privileged Time |
Memory | None | \Memory\% Committed Bytes In Use \Memory\Available Bytes \Memory\Cache Bytes \Memory\Committed Bytes \Memory\Page Faults/sec \Memory\Pages/sec \Memory\Pool Nonpaged Bytes \Memory\Pool Paged Bytes | Windows: Memory(*)\Available MBytes Memory(*)\% Committed Bytes In Use Linux: Memory(*)\Available MBytes Memory Memory(*)\% Used Memory Memory(*)\% Used Swap Space |
Disk | Disk Read Bytes Disk Write Bytes Disk Read Operations/Sec Disk Write Operations/Sec Data Disk Read Bytes/Sec Data Disk Write Bytes/Sec Data Disk Read Operations/Sec Data Disk Write Operations/Sec Data Disk Queue Depth OS Disk Read Bytes/Sec OS Disk Write Bytes/Sec OS Disk Read Operations/Sec OS Disk Write Operations/Sec OS Disk Queue Depth Premium Data Disk Cache Read Hit Premium Data Disk Cache Read Miss Premium OS Disk Cache Read Hit Premium OS Disk Cache Read Miss | \LogicalDisk(_Total)\% Disk Read Time \LogicalDisk(_Total)\% Disk Time \LogicalDisk(_Total)\% Disk Write Time \LogicalDisk(_Total)\% Free Space \LogicalDisk(_Total)\% Idle Time \LogicalDisk(_Total)\Avg. Disk Queue Length \LogicalDisk(_Total)\Avg. Disk Read Queue Length \LogicalDisk(_Total)\Avg. Disk sec/Read \LogicalDisk(_Total)\Avg. Disk sec/Transfer \LogicalDisk(_Total)\Avg. Disk sec/Write \LogicalDisk(_Total)\Avg. Write Queue Length \LogicalDisk(_Total)\Disk Bytes/sec \LogicalDisk(_Total)\Disk Read Bytes/sec \LogicalDisk(_Total)\Disk Reads/sec \LogicalDisk(_Total)\Disk Transfers/sec \LogicalDisk(_Total)\Disk Write Bytes/sec \LogicalDisk(_Total)\Free Megabytes | Windows: LogicalDisk(*)\Avg. Disk sec/Read LogicalDisk(*)\Avg. Disk sec/Write LogicalDisk(*)\Current Disk Queue Length LogicalDisk(*)\Disk Reads/sec LogicalDisk(*)\Disk Transfers/sec LogicalDisk(*)\Disk Writes/sec LogicalDisk(*)\Free Megabytes LogicalDisk(*)\% Free Space Linux: Logical Disk(*)\% Used Inodes Logical Disk(*)\Free Megabytes Logical Disk(*)\% Used Space Logical Disk(*)\Disk Transfers/sec Logical Disk(*)\Disk Reads/sec Logical Disk(*)\Disk Writes/sec |
Network | Network In Billable Network Out Billable Inbound Flows Outbound Flows Inbound Flows Maximum Creation Rate Outbound Flows Maximum Creation Rate Network In Total Network Out Total | None | Windows: Network Adapter(*)\Bytes Received/sec Network Adapter(*)\Bytes Sent/sec Network Interface(*)\Bytes Total/sec Linux: Network(*)\Total Bytes Transmitted Network(*)\Total Bytes Received |
Conclusion
Hopefully, you’ve found this series helpful in understanding the differences between Azure Metrics and Azure Monitor Logs.
In fact, I wrote this series based on a request I received from an individual that attended my presentation at the recent Global Azure Bootcamp! So, if you have a request for a topic, feel free to reach out, and I’ll try my best to help.