Skip to content

docker-exporterCorrect Docker metrics 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-exporter
~7 MiB
RAM at idle
~9 MB
image (musl + distroless)
<1%
CPU at steady state
2
arches: amd64 · arm64

Quick start

bash
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:latest

Then scrape http://localhost:9713/metrics. Full walkthrough in the installation guide.

Why it exists

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 →

docker-exporter vs cAdvisor

Dimensiondocker-exportercAdvisor
Image size~9 MB~250 MB
RAM (idle, ~10 containers)~7–10 MiB~80–150 MiB
cgroup v2 working set on ARM64CorrectReports zero — known issue
Privileged containerNo (socket read-only)Yes
ScopeDocker containersContainers + 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 →