banshee is under active development: collectors will keep changing, and a version you publish will likely need adjustments. For stable use, wait for version 1.0.0.

Windows

banshee/windows-collection/windows/snmp/

cpu

The load of each processor of a Windows and their average, by SNMP

  • windows
  • snmp
  • cpu

by banshee1 installation2 versions

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.

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-Service in PowerShell); - on Windows 10 and 11, the optional feature "Simple Network Management Protocol (SNMP)" (Settings, Optional features; or Add-WindowsCapability -Online -Name SNMP.Client~~~~0.0.1.0 in 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:version stays v2c. 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

NameLabelUnitPer instance
cpu-busyAverage load%no
core-busyProcessor load%yes, per processor (cpu0, cpu1…)
coresNumber of processors—no

Watches

NameTitleKindDefaultsChecked by default
cpu-highSaturationabove a threshold, on cpu-busywarning above 85 %, critical above 95 %, for 3 runsyes
core-hotA processor saturatedabove a threshold, on core-busywarning above 95 %, for 3 runs; no criticalno
core-neglectedA processor left idledeviates from the others, on core-busywarning when a processor is more than 30 % below the median of the others; no criticalno
core-countUnexpected number of processorsexpected value, on coresno expected value: it raises nothing until one is set on the probeyes

"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.