Chuyển đến nội dung chính

Mô tả

Probe container_mon giám sát Docker và Docker Swarm container qua Docker Engine API (HTTP trên unix socket). Theo dõi trạng thái running, restart count, và tùy chọn CPU/memory stats. Build tag vms_heavy — không có trong package agent mặc định.

Config fields

FieldTypeBắt buộcDefaultMô tả
typestringPhải là "container_mon"
runtimestring"docker" hoặc "docker_swarm". ("containerd" không được hỗ trợ trong build HTTP-socket)
runtimeEndpointstringKhông/var/run/docker.sockĐường dẫn Docker socket hoặc endpoint
containerNamePatternstringKhôngRegex match tên container. Để trống = match tất cả
serviceNamestringKhôngDocker Swarm service name (match label com.docker.swarm.service.name)
collectStatsboolKhôngfalseThu thập CPU% và memory cho container đang running

Metrics

MetricTypeUnitLabelsMô tả
vms.container_mon.statusstatuscontainerup hoặc down per container
vms.container_mon.restart_countcountercontainerSố lần restart (từ Docker inspect)
vms.container_mon.cpu_percentgaugepercentcontainerCPU usage (collectStats = true, container running)
vms.container_mon.memory_bytesgaugebytescontainerMemory usage
vms.container_mon.memory_percentgaugepercentcontainerMemory usage % (khi có limit)
vms.agent.permission_missinggaugecapability=docker.sockDocker socket unreachable

Ví dụ config

{
  "type": "container_mon",
  "runtime": "docker",
  "containerNamePattern": "core-.*",
  "collectStats": true
}
Docker Swarm service:
{
  "type": "container_mon",
  "runtime": "docker_swarm",
  "serviceName": "core-api",
  "collectStats": true
}

Lưu ý

  • Tối đa 50 container match per run — giới hạn request và cardinality.
  • Docker socket không reachable → status unknown, emit vms.agent.permission_missing{capability=docker.sock}.
  • Không match container nào → status down, severity critical.
  • collectStats chỉ thu thập cho container đang running. Stats lấy từ Docker one-shot stats API (stream=false).
  • CPU% tính từ 2 cumulative sample (current vs precpu_stats) trong response.