Я использую cAdvisor и Prometheus для мониторинга контейнеров докеров. Я запускаю приложение с помощью файла docker-compose.yml
.
В документации cAdvisor я прочитал, что флаги --enable_metrics
и --disable_metrics
можно использовать для выбора только подмножества метрик для мониторинга.
Однако, как только я задаю любой из этих флагов, cAdvisor начинает отслеживать только себя.
Флаг --ignore_containers=cadvisor тоже не работает, значит, я что-то делаю не так?
Это мой файл для создания докеров:
version: '3.2'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- 9090:9090
command:
- --config.file=/etc/prometheus/prometheus.yml
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
depends_on:
- cadvisor
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: advisor
# also tried:
# command: "--enable_metrics=memory"
# command: --enable_metrics=memory
# and more...
command:
- --disable_metrics=accelerator,advtcp,app,cpu,cpuLoad,cpu_topology,cpuset,disk,diskIO,hugetlb,memory_numa,network,oom_event,percpu,perf_event,process,referenced_memory,resctrl,sched,tcp,udp
- --enable_metrics=cpuLoad,memory,network
- --ignore_containers=cadvisor
ports:
- 8080:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:to
... containers ...
Обновлено:
Я попробовал то, что предложил пользователь e0031374, и исправил версию cAdvisor до v0.47.1. Однако я заметил, что как только я даю какую-либо команду, контейнер выходит в неработоспособном состоянии. Без команды все работает нормально.
Например, когда я добавляю
command:
- "--version"
docker ps -a
показывает:
5c4092450466 gcr.io/cadvisor/cadvisor "/usr/bin/cadvisor -…" 24 seconds ago Exited (0) 16 seconds ago
docker container inspect 5c4092450466
показывает:
...
Created": "2023-04-20T15:57:15.491743018Z",
"Path": "/usr/bin/cadvisor",
"Args": [
"-logtostderr",
"--version"
],
"State": {
"Status": "exited",
"Running": false,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 0,
"ExitCode": 0,
"Error": "",
"StartedAt": "2023-04-20T15:57:22.532921383Z",
"FinishedAt": "2023-04-20T15:57:22.726984392Z",
"Health": {
"Status": "unhealthy",
"FailingStreak": 0,
"Log": []
}
},
...
Что мне здесь не хватает? Спасибо!
попробуйте запустить cadvisor с параметром времени выполнения command: "--version"
, чтобы проверить версию образа cadvisor, который вы используете
cadvisor может быть ниже версии 0.41.0, даже если указана последняя версия. если это так, вам может потребоваться вручную указать более позднюю версию, например image: gcr.io/cadvisor/cadvisor:v0.47.0
что говорит бег docker container logs <container_id>
? также вы пытались использовать только --enable_metrics=cpuLoad,memory,network
в команде с image: gcr.io/cadvisor/cadvisor:v0.47.1
. пропустив любую другую команду. так как я не думаю, что ускоритель поддерживается в disable_metrics после v0.46.1
из документов и журнала ошибок, я не думаю, что --ignore_containers
также поддерживается во время выполнения
Спасибо! Я бегу
cAdvisor version v0.47.1 (7dfeea7d)
. Я заметил, что если я не ввожу какую-либо команду, контейнер работает без проблем. Однако, как только я пытаюсь добавить любую команду (даже --version), контейнер выходит в неработоспособном состоянии. У вас есть идеи о том, что я могу делать неправильно? Я обновлю свой вопрос, чтобы предоставить больше контекста.