diff --git a/console/data/docs/99-changelog.md b/console/data/docs/99-changelog.md index de81e142..22ed8ee9 100644 --- a/console/data/docs/99-changelog.md +++ b/console/data/docs/99-changelog.md @@ -15,6 +15,7 @@ identified with a specific icon: - 💥 *docker*: update Kafka data volume mount path (check [PR #1900](https://github.com/akvorado/akvorado/pull/1900) for the consequences if you upgrade from a previous beta) +- 🌱 *docker*: add cAdvisor to the monitoring stack ## 2.0.0-beta.4 - 2025-08-18 diff --git a/docker/docker-compose-prometheus.yml b/docker/docker-compose-prometheus.yml index 684c2d0b..35e2db79 100644 --- a/docker/docker-compose-prometheus.yml +++ b/docker/docker-compose-prometheus.yml @@ -28,6 +28,7 @@ services: - traefik.http.routers.prometheus.rule=PathPrefix(`/prometheus`) - traefik.http.services.prometheus.loadbalancer.server.port=9090 + # Node exporter for host metrics node-exporter: extends: file: versions.yml @@ -41,6 +42,28 @@ services: - --path.sysfs=/host/sys - --no-collector.filesystem + # cAdvisor for container metrics + cadvisor: + extends: + file: versions.yml + service: cadvisor + restart: unless-stopped + privileged: true + volumes: + - /:/rootfs:ro + - /sys:/sys:ro + - /dev/disk/:/dev/disk:ro + - /var/run/docker.sock:/var/run/docker.sock:ro + - /var/lib/docker/:/var/lib/docker:ro + devices: + - /dev/kmsg:/dev/kmsg + command: + # Minimize the amount of metrics reported, notably don't report anything from host + - --docker_only + - --store_container_labels=false + - --disable_root_cgroup_stats + - --enable_metrics=cpu,cpuLoad,diskIO,memory,network,oom_event,process,tcp,udp + # Kafka monitoring jmx-exporter-downloader: image: alpine:latest diff --git a/docker/prometheus.yml b/docker/prometheus.yml index 4356816d..d76a0544 100644 --- a/docker/prometheus.yml +++ b/docker/prometheus.yml @@ -70,6 +70,16 @@ scrape_configs: values: - com.docker.compose.project=akvorado - com.docker.compose.service=node-exporter + - job_name: cadvisor + metrics_path: /cadvisor/metrics + docker_sd_configs: + - host: unix:///var/run/docker.sock + refresh_interval: 30s + filters: + - name: label + values: + - com.docker.compose.project=akvorado + - com.docker.compose.service=cadvisor - job_name: akvorado metrics_path: /api/v0/metrics docker_sd_configs: diff --git a/docker/versions.yml b/docker/versions.yml index 13c24758..4e6a1f2e 100644 --- a/docker/versions.yml +++ b/docker/versions.yml @@ -28,6 +28,8 @@ services: image: prom/prometheus:v2.47.2 # v\d+\.\d+\.\d+ node-exporter: image: prom/node-exporter:v1.7.0 # v\d+\.\d+\.\d+ + cadvisor: + image: ghcr.io/google/cadvisor:v0.53.0 # v\d+\.\d+\.\d+ kafka-ui: image: ghcr.io/kafbat/kafka-ui:v1.3.0 # v\d+\.\d+\.\d+