CPU Metrics
CPU usage metrics are available in three averaging windows: 1-minute (default), 5-minute (suffix 5), and 15-minute (suffix 15).
Per-core variants accept a core index as argument.
Windows also provides CurrentUsage variants for instantaneous readings.
System.CPU.CacheSize(*)
CPU cache size in kilobytes.
Data Type |
Integer |
Platforms |
Linux |
| Argument | Type | Description |
|---|---|---|
index |
Integer |
CPU index (zero-based) |
System.CPU.CoreId(*)
CPU core ID.
Data Type |
Integer |
Platforms |
Linux |
| Argument | Type | Description |
|---|---|---|
index |
Integer |
CPU index (zero-based) |
System.CPU.Count
Number of CPU cores available to the system.
Data Type |
Unsigned Integer (Integer on macOS and FreeBSD) |
Platforms |
Linux, Windows, FreeBSD, Solaris, AIX, macOS, NetBSD, OpenBSD |
System.CPU.CountOffline
Number of currently offline CPUs.
Data Type |
Unsigned Integer |
Platforms |
Linux |
System.CPU.Frequency(*)
CPU frequency in megahertz.
On FreeBSD only the argument-less form System.CPU.Frequency is available.
Data Type |
Float (Integer on FreeBSD) |
Platforms |
Linux, FreeBSD |
| Argument | Type | Description |
|---|---|---|
index |
Integer |
CPU index (zero-based) |
System.CPU.Model(*)
CPU model identification string.
On FreeBSD only the argument-less form System.CPU.Model is available.
Data Type |
String |
Platforms |
Linux, FreeBSD |
| Argument | Type | Description |
|---|---|---|
index |
Integer |
CPU index (zero-based) |
System.CPU.PhysicalId(*)
Physical CPU ID.
Data Type |
Integer |
Platforms |
Linux |
| Argument | Type | Description |
|---|---|---|
index |
Integer |
CPU index (zero-based) |
System.CPU.VendorId
CPU vendor identification string.
Data Type |
String |
Platforms |
Linux, Windows, FreeBSD |
System.CPU.LoadAvg
1-minute load average.
Data Type |
Float |
Platforms |
Linux, FreeBSD, Solaris, AIX, macOS, NetBSD, OpenBSD, Windows (via |
System.CPU.LoadAvg5
5-minute load average.
Data Type |
Float |
Platforms |
Linux, FreeBSD, Solaris, AIX, macOS, NetBSD, OpenBSD, Windows (via |
System.CPU.LoadAvg15
15-minute load average.
Data Type |
Float |
Platforms |
Linux, FreeBSD, Solaris, AIX, macOS, NetBSD, OpenBSD, Windows (via |
System.CPU.ContextSwitches
Total context switch count since system boot.
Data Type |
Unsigned Integer |
Platforms |
Linux, Windows, FreeBSD |
System.CPU.Interrupts
Total interrupt count. Per-core variant accepts a core index argument (Windows only).
Data Type |
Unsigned Integer |
Platforms |
Linux, Windows, FreeBSD |
System.CPU.Interrupts(*) — returns interrupt count for a specific core.
| Argument | Type | Description |
|---|---|---|
index |
Integer |
CPU core index (zero-based) |
System.CPU.Usage
CPU usage percentage, available in 1-minute (default), 5-minute (suffix 5), and 15-minute (suffix 15) averaging windows. All variants report a Float value as a percentage.
Per-core variants accept a zero-based core index as argument (e.g., System.CPU.Usage(0)).
Data Type |
Float |
Platforms |
Linux, Windows, macOS, FreeBSD, Solaris, AIX (per sub-type; not available on NetBSD and OpenBSD) |
| Prefix | Description |
|---|---|
|
1-minute average |
|
5-minute average |
|
15-minute average |
| Suffix | Platforms | Description |
|---|---|---|
(none, overall) |
Linux, Windows, macOS, FreeBSD, Solaris, AIX |
Combined CPU utilization across all modes |
|
Linux, Windows, macOS, FreeBSD, Solaris, AIX |
User mode time |
|
Linux, Windows, macOS, FreeBSD, Solaris, AIX |
Kernel mode time |
|
Linux, Windows, macOS, FreeBSD, Solaris, AIX |
Idle time |
|
Linux, Solaris, AIX |
I/O wait time |
|
Linux, Windows |
Hardware interrupt time |
|
Linux |
Software interrupt time |
|
Linux |
Hypervisor steal time |
|
Linux |
Guest VM time |
|
Linux, macOS, FreeBSD |
Nice process time |
Each combination of averaging window and sub-type is a valid parameter. For example: System.CPU.Usage.User, System.CPU.Usage5.IoWait, System.CPU.Usage15.Steal.
All sub-types also have per-core variants by appending (core_index). For example: System.CPU.Usage.User(3), System.CPU.Usage5(0).
System.CPU.CurrentUsage
Instantaneous CPU usage (Windows only). Unlike the averaged variants, these report real-time CPU utilization.
Data Type |
Float |
Platforms |
Windows |
| Suffix | Description |
|---|---|
(none, overall) |
Current CPU utilization |
|
Current idle time |
|
Current hardware interrupt time |
|
Current kernel mode time |
|
Current user mode time |
All sub-types have per-core variants by appending (core_index).
System.CPU.PhysicalAverage
Average physical CPU utilization (AIX only), available in 1-minute (default), 5-minute (suffix 5), and 15-minute (suffix 15) averaging windows.
Sub-type suffixes .User, .System, .Idle, and .IoWait report the corresponding CPU time share.
Data Type |
Float |
Platforms |
AIX |
Each combination of averaging window and sub-type is a valid metric. For example: System.CPU.PhysicalAverage, System.CPU.PhysicalAverage5.User, System.CPU.PhysicalAverage15.IoWait.
CPU Usage Types
Each CPU usage parameter reports a specific type of CPU time:
| Type | Description |
|---|---|
|
Combined CPU utilization across all modes |
|
Time executing user-space processes |
|
Time executing kernel-mode code |
|
Time with no work to do |
|
Time waiting for I/O operations to complete (Linux, Solaris, AIX) |
|
Time handling hardware interrupts (Linux, Windows) |
|
Time handling software interrupts (Linux only) |
|
Time stolen by hypervisor for other virtual machines (Linux only) |
|
Time running virtual CPUs for guest operating systems (Linux only) |
|
Time running user-space processes with positive nice value (Linux, macOS, FreeBSD) |
Per-CPU Argument
Per-core variants of CPU usage parameters accept a single argument: the zero-based CPU core index.
Use System.CPU.Count to determine the number of available cores, or System.CPU.Instances list for instance discovery.
System.CPU.Usage(0) System.CPU.Usage.User(3)
On Windows, System.CPU.Usage* metrics are provided by the platform subagent (winnt.nsm). The winperf subagent provides System.CPU.LoadAvg* (processor queue length), PDH.*, and System.ThreadCount.
|