banshee/windows-collection/windows/snmp/
cpu
The load of each processor of a Windows and their average, by SNMP
by banshee1 installation2 versions
v2Latest
Published on October 28, 2026. One naming convention across collections; documentation completed.
Processors of a Windows, by SNMP
Returns the load of each logical processor of a Windows, the average load of all of them, and how many there are. Four watches are proposed, each one set on the probe.
Versions
Generic: written for the SNMP agent of Windows, the feature "SNMP Service" of Windows Server or the optional feature of Windows 10 and 11, and for HOST-RESOURCES-MIB, which it serves. That every release of Windows serves it alike is assumed, not yet checked on a real Windows.
How it works
The collector walks hrProcessorLoad (1.3.6.1.2.1.25.3.3.1.2, the table hrProcessorTable of HOST-RESOURCES-MIB): one row per logical processor, the load in percent, which the agent itself averages over the last minute.
- Each row is one processor, named
cpu0,cpu1… in the order the agent serves them: the index of the table means nothing to a reader. - The average load is the mean of the processors' loads, rounded to a tenth.
- The number of processors is the number of rows.
- Nothing is skipped at the first run: the agent already serves a load, not a counter.
- An agent that serves no row at all stops the collector as misconfigured ("The agent does not serve the processor table"): never a green light without a measure.
- By default, every processor is watched; the selection is changed on the probe.
Nothing is written to the Windows: SNMP reads only.
Prerequisites
- The SNMP service of Windows, installed and started: - on Windows Server, the feature "SNMP Service" (Server Manager, Add Roles and Features; or
Install-WindowsFeature SNMP-Servicein PowerShell); - on Windows 10 and 11, the optional feature "Simple Network Management Protocol (SNMP)" (Settings, Optional features; orAdd-WindowsCapability -Online -Name SNMP.Client~~~~0.0.1.0in PowerShell). - In the properties of the service "SNMP Service", tab Security: - a community with the right READ ONLY, which banshee reads in
protocol:snmp:v2c:community; - under "Accept SNMP packets from these hosts", the address of the poller. - SNMPv3: the SNMP agent of Windows does not offer it;
protocol:snmp:versionstaysv2c. The community then travels in clear text: keep it read-only and accepted from the poller alone. - The Windows firewall open to the poller on UDP 161 (the rule "SNMP Service (UDP In)").
Outputs
| Name | Label | Unit | Per instance |
|---|---|---|---|
cpu-busy | Overall processor usage | % | no |
core-busy | Processor usage | % | yes, per processor (cpu0, cpu1…) |
cores | Number of processors | — | no |
Watches
| Name | Title | Kind | Defaults | Checked by default |
|---|---|---|---|---|
cpu-high | Processor saturated | above a threshold, on cpu-busy | warning above 85 %, critical above 95 %, for 3 runs | yes |
core-hot | A processor saturated | above a threshold, on core-busy | warning above 95 %, for 3 runs; no critical | no |
core-neglected | A processor left idle | deviates from the others, on core-busy | warning when a processor is more than 30 % below the median of the others; no critical | no |
core-count | Unexpected number of processors | expected value, on cores | no expected value: it raises nothing until one is set on the probe | yes |
"A processor left idle" judges nothing on a run that keeps fewer than three processors: with two, there is no "others" to speak of.
Limits
- The load is the one the agent computes over the last minute: a burst of a few seconds is smoothed out.
- The processors are the logical ones: on a processor with two threads per core, each thread is one row.
- The SNMP agent of Windows serves neither the time spent waiting for the disks, nor the time taken by the hypervisor, nor a load average, nor the load of a GPU: none of them can be returned here.
- The names
cpu0,cpu1… follow the order of the agent, not the numbering of Windows.