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

Mô tả

Probe k8s_mon giám sát Kubernetes resources: Deployment, DaemonSet, StatefulSet (replicas desired vs available), Pod (readiness, restart count), Node (readiness), và Service (existence). Tùy chọn thu thập CPU/memory pod qua metrics-server. Build tag vms_heavy. Dùng in-cluster config + ServiceAccount. Cần RBAC get/list trên resource tương ứng.

Config fields

FieldTypeBắt buộcDefaultMô tả
typestringPhải là "k8s_mon"
namespacestringKhông"default"Kubernetes namespace
workloadKindstringLoại resource: "Node", "Pod", "Deployment", "DaemonSet", "StatefulSet", "Service"
workloadNamestring*Tên resource cụ thể. Bắt buộc 1 trong 2: workloadName hoặc labelSelector
labelSelectorstring*Kubernetes label selector (ví dụ "app=core-api"). Bắt buộc 1 trong 2
collectStatsboolKhôngfalseThu thập CPU (millicores) và memory (bytes) per pod từ metrics-server

Metrics

Deployment / DaemonSet / StatefulSet

MetricTypeLabelsMô tả
vms.k8s_mon.statusstatuskind, namespace, workloadup hoặc down
vms.k8s_mon.workload.availablegaugekind, namespace, workloadSố replicas available/ready
vms.k8s_mon.workload.desiredgaugekind, namespace, workloadSố replicas desired

Pod

MetricTypeLabelsMô tả
vms.k8s_mon.pod.readygaugekind, namespace, pod1 = ready, 0 = not ready
vms.k8s_mon.restart_countcounterkind, namespace, podTổng restart count của tất cả container trong pod

Node

MetricTypeLabelsMô tả
vms.k8s_mon.node.readygaugekind, namespace, node1 = ready, 0 = not ready

Stats (khi collectStats = true)

MetricTypeUnitLabelsMô tả
vms.k8s_mon.cpu_millicoresgaugemillicoreskind, namespace, podTổng CPU usage per pod
vms.k8s_mon.memory_bytesgaugebyteskind, namespace, podTổng memory usage per pod

Ví dụ config

Giám sát Deployment:
{
  "type": "k8s_mon",
  "namespace": "core",
  "workloadKind": "Deployment",
  "workloadName": "core-api",
  "collectStats": true
}
Giám sát Pod theo label:
{
  "type": "k8s_mon",
  "namespace": "core",
  "workloadKind": "Pod",
  "labelSelector": "app=core-worker",
  "collectStats": true
}
Giám sát Node:
{
  "type": "k8s_mon",
  "workloadKind": "Node",
  "workloadName": "worker-01"
}

Lưu ý

  • Tối đa 100 pod/node emit per run.
  • RBAC cần thiết: get, list trên resource tương ứng. Nếu thiếu → status unknown, emit vms.agent.permission_missing{capability=kubernetes_rbac}.
  • collectStats cần metrics-server cài trong cluster. Nếu không có → stats bị bỏ qua (không lỗi).
  • Không chạy trong Kubernetes (không có in-cluster config) → status unknown, emit vms.agent.permission_missing{capability=kubernetes_in_cluster}.
  • Build tag vms_heavy — không có trong package agent mặc định.