Monitoring

dockerinfrastructurecontainer

Three different jobs, often confused: collecting metrics and alerting on them, catching application errors, and telling users what is broken. Most setups end up with one tool for each.

Metrics and alerting

On Kubernetes these are installed as charts, see Helm.

Error tracking

Status pages

A status page is what users read when your infrastructure is down, so it is hosted somewhere else than the infrastructure it reports on. That constraint is most of the choice.

Running the Datadog Agent in a container

One agent container per host, with the Docker socket and the host /proc and cgroups mounted read only:

docker run -d --cgroupns host --pid host --name dd-agent \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v /proc/:/host/proc/:ro \
  -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
  -e DD_SITE=datadoghq.com \
  -e DD_API_KEY=<your api key> \
  registry.datadoghq.com/agent:7

DD_SITE has to match the region your account lives in (it defaults to datadoghq.com); point it at the wrong one and the agent runs happily while nothing shows up in the interface.

What the agent actually sees, checks included:

docker exec -it dd-agent agent status

Both come from the Docker Agent documentation and its Agent commands guide, checked in August 2026.

The image and the variable names changed with Agent 6: datadog/docker-dd-agent was the Agent 5 image, it took API_KEY rather than DD_API_KEY and ran privileged, and its status command was service datadog-agent info. Recipes older than that, mine included, are worth nothing today. The CoreOS unit I used to run it with is kept in CoreOS.

Related