Merge pull request 'fix(observability): cAdvisor 0.55.1 — 0.52 не видит контейнеры на Docker 29' (#3109) from fix/cadvisor-bump-055 into main
All checks were successful
Deploy Metrics / server (push) Successful in 11s
Deploy Metrics / agent-apps (push) Successful in 20s
Deploy Metrics / agent-infra (push) Successful in 22s

Reviewed-on: #3109
This commit is contained in:
lekss361 2026-08-26 10:41:25 +00:00
commit 52b076fa4a
3 changed files with 19 additions and 9 deletions

View file

@ -116,7 +116,11 @@ services:
# Читает докер-сокет, поэтому видит ВСЕ контейнеры хоста независимо от сетей —
# отдельно подключать его к gendesign_default не нужно.
cadvisor:
image: gcr.io/cadvisor/cadvisor:v0.52.1
# v0.55.1, не v0.52.x: Docker 29 работает через containerd-snapshotter
# (Storage Driver = overlayfs), а 0.52 искал метаданные слоя в легаси
# /var/lib/docker/image/<driver>/layerdb, которого при снапшоттере
# просто нет. Итог был — ни одной метрики по контейнерам.
image: gcr.io/cadvisor/cadvisor:v0.55.1
container_name: gendesign-cadvisor
restart: unless-stopped
privileged: true

View file

@ -92,10 +92,13 @@ prometheus.relabel "cadvisor_trim" {
action = "keep"
}
// Служебные контейнеры docker без имени только зашумляют графики.
// keep .+ вместо drop с пустым regex: в Alloy незаданный regex
// документированно дефолтится в (.*), а пустая строка неотличима от
// незаданного значения — такой drop рискует выкинуть вообще все ряды.
// Служебные ряды без имени (корневой cgroup, id="/") только зашумляют графики.
// keep .+ вместо drop с пустым regex — та же мысль, но без зависимости от
// трактовки пустого regex: в Alloy он неотличим от незаданного, а незаданный
// дефолтится в (.*).
//
// NB: на пустые панели это правило НЕ влияло. Причина была в cAdvisor 0.52 на
// Docker 29 — до сюда доезжал ровно один ряд, корневой. Лечится версией 0.55.1.
rule {
source_labels = ["name"]
regex = ".+"

View file

@ -63,10 +63,13 @@ prometheus.relabel "cadvisor_trim" {
action = "keep"
}
// Служебные контейнеры docker без имени только зашумляют графики.
// keep .+ вместо drop с пустым regex: в Alloy незаданный regex
// документированно дефолтится в (.*), а пустая строка неотличима от
// незаданного значения — такой drop рискует выкинуть вообще все ряды.
// Служебные ряды без имени (корневой cgroup, id="/") только зашумляют графики.
// keep .+ вместо drop с пустым regex — та же мысль, но без зависимости от
// трактовки пустого regex: в Alloy он неотличим от незаданного, а незаданный
// дефолтится в (.*).
//
// NB: на пустые панели это правило НЕ влияло. Причина была в cAdvisor 0.52 на
// Docker 29 — до сюда доезжал ровно один ряд, корневой. Лечится версией 0.55.1.
rule {
source_labels = ["name"]
regex = ".+"