Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Performance counters
The following performance counters are collected by the Azure Monitor Agent for Windows and Linux virtual machines. The default sampling frequency is 60 seconds, but this frequency can be changed when creating or updating the data collection rule.
| Performance Counter | Type | Unit | Aggregation | Monotonic | Dimensions | Description |
|---|---|---|---|---|---|---|
| system.cpu.utilization | Gauge | 1 | N/A | FALSE | cpu: Logical CPU number starting at 0 (values: Any Str) state: Breakdown of CPU usage by type (values: idle, interrupt, nice, softirq, steal, system, user, wait) |
Difference in system.cpu.time since the last measurement per logical CPU, divided by the elapsed time (0-1). |
| system.cpu.time | Sum | s | Cumulative | TRUE | cpu: Logical CPU number starting at 0 (values: Any Str) state: Breakdown of CPU usage by type (values: idle, interrupt, nice, softirq, steal, system, user, wait) |
Total seconds each logical CPU spent on each mode. |
| system.cpu.physical.count | Sum | {cpu} | Cumulative | FALSE | (none) | Number of available physical CPUs. |
| system.cpu.logical.count | Sum | {cpu} | Cumulative | FALSE | cpu: Logical CPU number starting at 0 (values: Any Str) | Number of available logical CPUs. |
| system.cpu.load_average.5m | Gauge | {thread} | N/A | FALSE | (none) | Average CPU Load over 5 minutes. |
| system.cpu.load_average.1m | Gauge | {thread} | N/A | FALSE | (none) | Average CPU Load over 1 minute. |
| system.cpu.load_average.15m | Gauge | {thread} | N/A | FALSE | (none) | Average CPU Load over 15 minutes. |
| system.cpu.frequency | Gauge | Hz | N/A | FALSE | (none) | Current frequency of the CPU core in Hz. |
| process.uptime | Gauge | s | N/A | FALSE | (none) | Time the process has been running. |
| process.threads | Sum | {threads} | Cumulative | FALSE | (none) | Process threads count. |
| process.signals_pending | Sum | {signals} | Cumulative | FALSE | (none) | Number of pending signals for the process (Linux only). |
| process.paging.faults | Sum | {faults} | Cumulative | TRUE | type: Type of fault (values: major, minor) | Number of page faults the process has made (Linux only). |
| process.open_file_descriptors | Sum | {count} | Cumulative | FALSE | (none) | Number of file descriptors in use by the process. |
| process.memory.virtual | Sum | By | Cumulative | FALSE | (none) | Virtual memory size. |
| process.memory.utilization | Gauge | 1 | N/A | FALSE | (none) | Percentage of total physical memory used by the process. |
| process.memory.usage | Sum | By | Cumulative | FALSE | (none) | Amount of physical memory in use. |
| system.disk.weighted_io_time | Sum | s | Cumulative | FALSE | device: Name of the disk (values: Any Str) | Time disk spent activated multiplied by queue length. |
| system.disk.pending_operations | Sum | {operations} | Cumulative | FALSE | device: Name of the disk (values: Any Str) | Queue size of pending I/O operations. |
| system.disk.operations | Sum | {operations} | Cumulative | TRUE | device: Name of the disk (values: Any Str) direction: Direction of flow (values: read, write) |
Disk operations count. |
| system.disk.operation_time | Sum | s | Cumulative | TRUE | device: Name of the disk (values: Any Str) direction: Direction of flow (values: read, write) |
Time spent in disk operations. |
| system.disk.merged | Sum | {operations} | Cumulative | TRUE | device: Name of the disk (values: Any Str) direction: Direction of flow (values: read, write) |
Disk reads/writes merged into single physical operations. |
| system.disk.io_time | Sum | s | Cumulative | TRUE | device: Name of the disk (values: Any Str) | Time disk spent activated. |
| system.disk.io | Sum | By | Cumulative | TRUE | device: Name of the disk (values: Any Str) direction: Direction of flow (values: read, write) |
Disk bytes transferred. |
| process.handles | Sum | {count} | Cumulative | FALSE | (none) | Number of open handles (Windows only). |
| process.disk.operations | Sum | {operations} | Cumulative | TRUE | direction: Direction of flow (values: read, write) | Disk operations performed by the process. |
| process.disk.io | Sum | By | Cumulative | TRUE | direction: Direction of flow (values: read, write) | Disk bytes transferred. |
| process.cpu.utilization | Gauge | 1 | N/A | FALSE | state: Breakdown of CPU usage (values: system, user, wait) | Percentage of total CPU time used by the process since last scrape (0-1). |
| process.cpu.time | Sum | s | Cumulative | TRUE | state: Breakdown of CPU usage (values: system, user, wait) | Total CPU seconds broken down by states. |
| process.context_switches | Sum | {count} | Cumulative | TRUE | type: Type of context switch (values: Any Str) | Number of times the process has been context switched (Linux only). |
| system.memory.utilization | Gauge | 1 | N/A | FALSE | state: Breakdown of memory usage (values: buffered, cached, inactive, free, slab_reclaimable, slab_unreclaimable, used) | Percentage of memory bytes in use. |
| system.memory.usage | Sum | By | Cumulative | FALSE | state: Breakdown of memory usage (values: buffered, cached, inactive, free, slab_reclaimable, slab_unreclaimable, used) | Bytes of memory in use. |
| system.memory.page_size | Gauge | By | N/A | FALSE | (none) | System's configured page size. |
| system.memory.limit | Sum | By | Cumulative | FALSE | (none) | Total bytes of memory available. |
| system.linux.memory.dirty | Sum | By | Cumulative | FALSE | (none) | Amount of dirty memory (/proc/meminfo). |
| system.linux.memory.available | Sum | By | Cumulative | FALSE | (none) | Estimate of available memory (Linux only). |
| system.network.packets | Sum | {packets} | Cumulative | TRUE | device: Network interface name (values: Any Str) direction: Direction of flow (values: receive, transmit) |
Number of packets transferred. |
| system.network.io | Sum | By | Cumulative | TRUE | (none) | Bytes transmitted and received. |
| system.network.errors | Sum | {errors} | Cumulative | FALSE | device: Network interface name (values: Any Str) direction: Direction of flow (values: receive, transmit) |
Number of errors encountered. |
| system.network.dropped | Sum | {packets} | Cumulative | TRUE | device: Network interface name (values: Any Str) direction: Direction of flow (values: receive, transmit) |
Number of packets dropped. |
| system.network.conntrack.max | Sum | {entries} | Cumulative | FALSE | (none) | Limit for entries in conntrack table. |
| system.network.conntrack.count | Sum | {entries} | Cumulative | FALSE | (none) | Count of entries in conntrack table. |
| system.network.connections | Sum | {connections} | Cumulative | FALSE | protocol: Network protocol (values: tcp) state: Connection state (values: Any Str) |
Number of connections. |
| system.uptime | Gauge | s | N/A | FALSE | (none) | Time the system has been running. |
| system.processes.created | Sum | {processes} | Cumulative | TRUE | (none) | Total number of created processes. |
| system.processes.count | Sum | {processes} | Cumulative | FALSE | status: Process status (values: blocked, daemon, detached, idle, locked, orphan, paging, running, sleeping, stopped, system, unknown, zombies) | Total number of processes in each state. |
| system.paging.utilization | Gauge | 1 | N/A | FALSE | device: Page file name (values: Any Str) state: Paging usage type (values: cached, free, used) |
Swap (Unix) or pagefile (Windows) utilization. |
| system.paging.usage | Sum | By | Cumulative | FALSE | device: Page file name (values: Any Str) state: Paging usage type (values: cached, free, used) |
Swap (Unix) or pagefile (Windows) usage. |
| system.paging.operations | Sum | {operations} | Cumulative | TRUE | direction: Page flow (values: page_in, page_out) type: Fault type (values: major, minor) |
Paging operations. |
| system.paging.faults | Sum | {faults} | (none) | TRUE | type: Fault type (values: major, minor) | Number of page faults. |
| system.filesystem.utilization | Gauge | 1 | N/A | FALSE | device: Filesystem identifier mode: Mount mode (values: ro, rw) mountpoint: Path type: Filesystem type (values: ext4, tmpfs, etc.) |
Fraction of filesystem bytes used. |
| system.filesystem.usage | Sum | By | Cumulative | FALSE | device: Filesystem identifier mode: Mount mode mountpoint: Path type: Filesystem type state: Usage type (values: free, reserved, used) |
Filesystem bytes used. |
| system.filesystem.inodes.usage | Sum | {inodes} | Cumulative | FALSE | device: Filesystem identifier mode: Mount mode mountpoint: Path type: Filesystem type state: Usage type (values: free, reserved, used) |
Filesystem inodes used. |
Resource Attributes
The OpenTelemetry Resource semantic convention is still in development. We are actively engaging with the OSS community to improve and standardize this naming convention for a variety of scenarios - please share your feedback to help us continuously improve your experience.
In general, OpenTelemetry metrics collected via Azure Monitor Agent + Data Collection Rules and sent to Azure Monitor workspaces have the following cloud resource attributes automatically added as dimensions to support resource-scoped querying:
- Microsoft.resourceid
- Microsoft.subscriptionid
- Microsoft.resourcegroupname
- Microsoft.resourcetype
- Microsoft.amwresourceid
OpenTelemetry per-process metrics have their own special set of Resource Attributes. The table shows those resource attributes that the Azure Monitor Agent automatically promotes as dimensions.
| Name | Description | Values | Enabled |
|---|---|---|---|
| process.command | The command used to launch the process (i.e., the command name). On Linux-based systems, can be set to the zeroth string in proc/[pid]/cmdline. On Windows, can be set to the first parameter extracted from GetCommandLineW. |
Any Str | true |
| process.executable.name | The name of the process executable. On Linux-based systems, can be set to the Name in proc/[pid]/status. On Windows, can be set to the base name of GetProcessImageFileNameW. |
Any Str | true |
| process.owner | The username of the user that owns the process. | Any Str | true |
| process.pid | Process identifier (PID). | Any Int | true |
| process.cgroup | cgroup associated with the process (Linux only). | Any Str | false |
| process.command_line | The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of GetCommandLineW. Do not set this if you have to assemble it just for monitoring; use process.command_args instead. |
Any Str | false |
| process.executable.path | The full path to the process executable. On Linux-based systems, can be set to the target of proc/[pid]/exe. On Windows, can be set to the result of GetProcessImageFileNameW. |
Any Str | false |
| process.parent_pid | Parent Process Identifier (PPID). | Any Int | false |
The process.command_line attribute can contain extremely long strings with thousands of characters, making it unsuitable as a normal metric dimension. We might find a different way to surface this attribute based on customer user scenarios submitted as feedback to the product team.
Next steps
Use custom metrics from various services: