Разбивка по контейнерам (CPU/память/сеть) — то, что не смог дать
cAdvisor из-за несовместимости с containerd-снапшоттером сервера 1gb
(убран в 7f5c888). Свой минимальный сервис container-exporter (Python/
aiohttp/prometheus_client) опрашивает Docker Engine API параллельно в
фоновой задаче, не завязываясь на scrape-интервал Prometheus.
Доступ к докер-сокету изолирован через docker-socket-proxy: экспортеру
разрешены только GET /containers/json и /containers/*/stats, любые
изменяющие запросы блокируются на уровне прокси (POST=0) — полная
компрометация экспортера не даёт управлять Docker. Ни один из двух
сервисов не публикует портов наружу.
В host.json возвращены панели «Топ контейнеров по CPU/памяти» на новых
метриках vidconf_container_* (в 0.0.9 их убрали вместе с cAdvisor).
27 lines
564 B
TOML
27 lines
564 B
TOML
[project]
|
|
name = "vidconf-container-exporter"
|
|
version = "0.1.0"
|
|
description = "Метрики Prometheus по контейнерам поверх Docker Engine API (профиль monitoring, deploy/docker-compose.yml)."
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"aiohttp>=3.10.0",
|
|
"prometheus-client>=0.25.0",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"mypy>=2.3.0",
|
|
"ruff>=0.15.21",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py312"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "UP", "B", "ASYNC"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
strict = true
|