fix(observability): cAdvisor 0.55.1 — 0.52 не видит контейнеры на Docker 29 #3109
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3109
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/cadvisor-bump-055"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Догоняем #3108: тот PR пустые панели по контейнерам не починил, и правило relabel в нём было ни при чём. Настоящая причина оказалась глубже.
Причина
Docker 29 на обоих хостах работает через containerd-snapshotter, а cAdvisor 0.52 ищет метаданные слоя в легаси-хранилище:
overlayfsoverlayfsio.containerd.snapshotter.v1/var/lib/docker/image/identity-cache.dbПри снапшоттере каталога
image/<driver>/layerdbнет вовсе — метаданные слоёв живут в containerd. Обработчик контейнера не создаётся, и наружу уходит ровно один ряд:Отсюда «нодата» на панелях контейнеров при живых node / postgres / app метриках.
Проверка — пробами с ПРОДОВЫМИ флагами на обоих хостах
Одноразовые контейнеры, убраны за собой:
Примеры того, что появилось:
Ровно то, чего не хватало панелям.
Заодно
Поправлен комментарий, который я же вписал в
cadvisor_trimв #3108: он объяснял пустые панели трактовкой пустого regex — это оказалось неверно. Само правило корректно и остаётся (корневой ряд приходит сname=""и должен отсеиваться), но объяснение рядом с ним уводило бы следующий разбор по ложному следу.Почему тег
.1В реестре нет ни
v0.53.0, ниv0.54.0, ниv0.55.0— толькоv0.54.1иv0.55.1. В прошлый раз я проверял подбором тегов и сделал неверный вывод «новее 0.52.1 ничего нет»; теперь смотрел по списку тегов реестра.Проверки
yaml.safe_loadдляdocker-compose.metrics-agent.yml— okalloy fmtобоих.alloyвgrafana/alloy:v1.6.1— exit 0--docker_only/--disable_metrics/--store_container_labels, что в compose, и 0.55.1 их принялПосле мёрджа
count(container_last_seen)должен перестать быть пустым — проверю.