Prometheus est la réponse par défaut à “comment monitorer mes conteneurs Docker ?” Mais pour la plupart des setups Docker Compose, c’est comme utiliser un télescope pour regarder de l’autre côté de la rue.
Ce guide vous montre comment monitorer toute votre stack Docker — conteneurs, endpoints, certificats, cron jobs, ressources — sans toucher à Prometheus.
Pourquoi Pas Prometheus ?
Prometheus est conçu pour des infrastructures distribuées à grande échelle. Pour monitorer des conteneurs Docker, vous avez besoin de :
- Prometheus lui-même — scrape les endpoints de métriques
- cAdvisor — expose les métriques conteneurs comme targets Prometheus
- node_exporter — expose les métriques de l’hôte
- Grafana — parce que Prometheus n’a pas de dashboard intégré
- Alertmanager — parce que les alertes Prometheus nécessitent un moteur de routage séparé
Soit 5 conteneurs, 3+ fichiers de config, et un langage de requête (PromQL) à apprendre — juste pour répondre à “est-ce que mes conteneurs tournent ?”
Pour un stack de 10-50 conteneurs sur un VPS, il y a des approches plus simples.
L’Approche API Docker
Docker sait déjà tout de vos conteneurs. L’API Docker Engine expose :
- Les états des conteneurs (running, stopped, restarting, exited)
- Les résultats des health checks
- Les métriques CPU, mémoire, réseau et I/O disque par conteneur
- Les événements en temps réel (start, stop, die, health_status)
- Les labels, les groupes de projets Compose, les ports exposés
Un outil de monitoring qui se connecte directement à l’API Docker peut obtenir toutes ces données sans exporter intermédiaire. Pas de cAdvisor. Pas de pipeline de scraping. Pas de Prometheus.

Ce Qu’il Faut Vraiment Monitorer
Pour un stack Docker Compose typique, il y a 6 choses qui comptent :
1. États des conteneurs
Est-ce que mes conteneurs tournent ? Y en a-t-il en boucle de redémarrage ? Est-ce qu’un a quitté avec un code non-zéro ?
C’est ce que Prometheus + cAdvisor vous donne — mais l’API Docker donne les mêmes données directement.
2. Endpoints HTTP/TCP
Est-ce que mon API répond ? Quelle est la latence ? Est-ce qu’elle renvoie le bon code de statut ?
Prometheus a besoin du Blackbox Exporter pour ça. Avec Maintenant, vous ajoutez des labels Docker :
labels:
maintenant.endpoint.http: "https://api.example.com/health"
maintenant.endpoint.interval: "30s"

3. Certificats SSL
Est-ce que mes certificats sont valides ? Quand expirent-ils ? La chaîne est-elle complète ?
Prometheus a besoin d’un exporter SSL dédié. Maintenant auto-détecte les certificats sur tous les endpoints HTTPS.

4. Cron jobs et tâches planifiées
Mon backup a-t-il tourné cette nuit ? A-t-il réussi ?
Prometheus n’a pas de solution intégrée pour ça. Maintenant inclut un système de heartbeat avec signaux start/end.

5. Ressources système
CPU, RAM, disque, réseau — par conteneur et par hôte.
C’est là que Prometheus brille avec sa granularité à la seconde. Mais pour “est-ce que mon disque se remplit ?” et “quel conteneur mange toute la RAM ?”, vous n’avez pas besoin d’une résolution à la seconde.

6. Détection des mises à jour
Y a-t-il des versions plus récentes de mes images Docker ? Certaines sont-elles des correctifs de sécurité ?
Prometheus ne fait pas ça du tout. Maintenant scanne les registres OCI et compare les digests.

Le Setup Pratique
Un conteneur. Pas de fichier de config. Pas de PromQL.
services:
# Vos services existants...
api:
image: myapp:latest
labels:
maintenant.endpoint.http: "http://api:3000/health"
postgres:
image: postgres:16
labels:
maintenant.endpoint.tcp: "postgres:5432"
# Ajoutez Maintenant
maintenant:
image: ghcr.io/kolapsis/maintenant:latest
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc:/host/proc:ro
- maintenant-data:/data
environment:
MAINTENANT_ADDR: "0.0.0.0:8080"
MAINTENANT_DB: "/data/maintenant.db"
restart: unless-stopped
volumes:
maintenant-data:
docker compose up -d
Ouvrez http://votre-serveur:8080. Tous vos conteneurs sont déjà là. Les endpoints sont monitorés. Les certificats SSL sont suivis. Les ressources sont graphées.
Pas de prometheus.yml. Pas de datasource Grafana. Pas de PromQL à apprendre.
Quand Vous AVEZ Besoin de Prometheus
Gardez Prometheus si vous avez besoin de :
- Granularité à la seconde pour le debugging de performance
- Métriques applicatives custom (code instrumenté Go/Java/Python)
- PromQL pour l’exploration ad-hoc de données
- Fédération multi-cluster
- Stockage de métriques long terme (années)
Pour tout le reste — et ça couvre 95% des stacks Docker self-hosted — vous pouvez passer Prometheus entièrement.
Lire le comparatif complet : Maintenant vs Prometheus + Grafana →