Find out about problems before the client does. Prometheus scrapes host, container, database and cache metrics; Grafana visualizes them; Alertmanager emails the admin the moment something looks wrong β and autoheal restarts containers that are hung, not just crashed.
Every component already runs a Docker healthcheck today β but a healthcheck only tells you "up" or "down". The monitoring stack adds real numbers on top: how much CPU/RAM/disk is left, how each container is behaving individually, and actual Postgres/Redis internals instead of a bare ping.
Alertmanager routes alerts by email through the same SMTP relay the backend already uses for notifications β no new mail-sending code, no new secrets to manage beyond the existing Ansible Vault entries. Two concrete problems this closes today:
Prometheus, Alertmanager and every exporter live exclusively inside the existing "axiom" Docker network β none of them publish a port to the host. The single deliberate exception is Grafana, reachable only through a dedicated nginx vhost.
Every Axiom client runs on its own single VM managed by Ansible, not a Kubernetes cluster β introducing a full orchestration platform just to get self-healing/observability "for free" would be disproportionate at this stage. The monitoring stack is deliberately opt-in per client rather than switched on everywhere by default.