Correct working set
usage − inactive_file on cgroup v2, usage − cache on v1. The exact number cAdvisor reports as zero on ARM64 + cgroup v2.
A tiny Rust Prometheus exporter for Docker containers — and the fix for cAdvisor's zero-memory bug on Raspberry Pi 5.
docker run -d \
--name docker-exporter \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-p 9713:9713 \
--restart unless-stopped \
ghcr.io/dlepaux/docker-exporter:latestThen scrape http://localhost:9713/metrics. Full walkthrough in the installation guide.
On a Raspberry Pi 5 (ARM64 + cgroup v2), cAdvisor reports zero for container_memory_working_set_bytes and container_memory_rss — memory dashboards silently lie. It's an upstream-acknowledged bug (cAdvisor #3469, closed "not planned") that persists even after you enable memory cgroups on the Pi.
docker-exporter reads the Docker stats API directly and computes the working set correctly on both cgroup versions. It talks to the socket read-only and runs non-root. Read the full story →
| Dimension | docker-exporter | cAdvisor |
|---|---|---|
| Image size | ~9 MB | ~250 MB |
| RAM (idle, ~10 containers) | ~7–10 MiB | ~80–150 MiB |
| cgroup v2 working set on ARM64 | Correct | Reports zero — known issue |
| Privileged container | No (socket read-only) | Yes |
| Scope | Docker containers | Containers + host + processes + hardware |
Numbers are docker-exporter's own reported measurements — see the reproducible benchmark methodology →.
Already running cAdvisor and happy with it? Keep it. Hitting the Pi 5 memory bug, or want a smaller footprint on an SBC? See the full comparison →