Skip to main content

Description

The process_mon probe monitors running processes on the host, counting matches and optionally collecting aggregate or per-process CPU/memory detail. Matching is by process name (glob, case-insensitive) with an optional executable path filter. Requires the ProcessAdapter platform adapter.

Config fields

FieldTypeRequiredDefaultDescription
typestringYesMust be "process_mon"
processNamestringYesProcess name glob pattern. Case-insensitive. Supports *, ?, [
executablePathstringNoFull executable path to narrow match (ANDed with processName). Exact match
minCountintNo1Minimum process count. count < minCount → down
maxCountintNoMaximum process count. count > maxCount → warning
collectCpuMemoryboolNofalseCollect aggregate CPU% and memory bytes across all matched processes
collectPerProcessboolNofalseCollect per-process detail (CPU, RSS, VMS, threads, FDs, disk I/O, uptime)
collectConnectionsboolNo= collectPerProcessCollect open connection count per matched PID. Needs ConnAdapter
maxProcessesintNo20Cap on per-process detail emission (busiest-by-CPU kept)

Metrics

MetricTypeUnitLabelsCondition
vms.process_mon.runningstatusAlways
vms.process_mon.countgaugeAlways
vms.process_mon.cpu_percentgaugepercentcollectCpuMemory = true
vms.process_mon.memory_bytesgaugebytescollectCpuMemory = true
vms.process.cpu_percentgaugepercentpid, name, usercollectPerProcess = true
vms.process.memory_rss_bytesgaugebytespid, name, usercollectPerProcess = true
vms.process.memory_vms_bytesgaugebytespid, name, usercollectPerProcess = true
vms.process.num_threadsgaugepid, name, usercollectPerProcess = true
vms.process.num_fdsgaugepid, name, usercollectPerProcess = true
vms.process.disk_read_bytescounterbytespid, name, usercollectPerProcess = true
vms.process.disk_write_bytescounterbytespid, name, usercollectPerProcess = true
vms.process.uptime_secondsgaugesecondspid, name, usercollectPerProcess = true
vms.process.num_connectionsgaugepid, name, usercollectConnections = true

Example config

{
  "type": "process_mon",
  "processName": "nginx",
  "minCount": 1,
  "collectCpuMemory": true
}

Notes

  • The legacy commandLinePattern regex selector has been removed — use processName glob instead.
  • When collectPerProcess = true and matches exceed maxProcesses, only the busiest processes (highest CPU%) are kept.