Skip to main content

Description

The connection probe reads the host connection table (never opens new connections) and counts entries matching configured filters. Supports filtering by process, endpoint, protocol, and state.

Config fields

FieldTypeRequiredDefaultDescription
typestringYesMust be "connection"
namestringYesProbe identifier (used in messages and logs)
descriptionstringNoPurpose description
processNamestringNoFilter by process name. Needs CAP_SYS_PTRACE on Linux
processPathstringNoFilter by executable path. Needs CAP_SYS_PTRACE on Linux
localAddressstringNoFilter by local IP address
localPortintNoFilter by local port
remoteAddressstringNoFilter by remote IP address
remotePortintNoFilter by remote port
protocolstringNoFilter by protocol: "tcp" or "udp"
statesstring[]NoFilter by connection state (e.g. ["ESTABLISHED", "LISTEN"])
minCountintNo1Minimum connection count. Below → down
maxCountintNoMaximum connection count. Above → warning

Metrics

MetricTypeDescription
vms.connection.statusstatusup, down, or warning
vms.connection.countgaugeNumber of matching connections
vms.agent.permission_missinggaugeEmitted when processName/processPath is configured but CAP_SYS_PTRACE is missing

Example config

{
  "type": "connection",
  "name": "nginx-to-postgres",
  "processName": "nginx",
  "remotePort": 5432,
  "states": ["ESTABLISHED"],
  "minCount": 1
}

Notes

  • The probe does not open new connections — it only reads the existing host connection table.
  • All filters use AND logic — a connection must match all configured filters.
  • Missing CAP_SYS_PTRACE with process filters results in 0 matches and emits vms.agent.permission_missing.