superviser des microservices node.js avec prometheus et grafana : guide technique complet
25/02/2026
Pourquoi superviser des microservices Node.js avec Prometheus et Grafana ?
Dans un environnement distribué, assurer la disponibilité et la performance de chaque service est crucial. Prometheus collecte des métriques et Grafana les affiche sous forme de tableaux de bord interactifs. Ce guide technique vous accompagne, pas à pas, pour instrumenter un microservice Node.js, le déployer en conteneur Docker et visualiser ses indicateurs clés.
Prérequis
- Un microservice Node.js (v14+).
- Docker et Docker Compose installés.
- Accès à un serveur ou cluster (Kubernetes ou VM).
- Prometheus v2.40+ et Grafana v9+.
1. Instrumenter le microservice Node.js
1.1 Installer la bibliothèque prom-client
npm install prom-client --save
1.2 Exposer l’endpoint /metrics
const express = require('express');
const client = require('prom-client');
const app = express();
// Créer un collecteur système
client.collectDefaultMetrics({ prefix: 'service_' });
// Exemple de compteur personnalisé
const httpRequests = new client.Counter({
name: 'service_http_requests_total',
help: 'Nombre total de requêtes HTTP',
labelNames: ['method', 'route', 'status']
});
app.use((req, res, next) => {
res.on('finish', () => {
httpRequests.inc({
method: req.method,
route: req.path,
status: res.statusCode
});
});
next();
});
app.get('/metrics', async (req, res) => {
res.set('Content-Type', client.register.contentType);
res.end(await client.register.metrics());
});
app.listen(3000, () => console.log('Service démarré sur port 3000'));
2. Packager et déployer avec Docker Compose
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
prometheus:
image: prom/prometheus:v2.40.0
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
grafana:
image: grafana/grafana:9.5.0
ports:
- "3001:3000"
2.1 Configuration de Prometheus (prometheus.yml)
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node_microservice'
metrics_path: /metrics
static_configs:
- targets: ['app:3000']
3. Créer un dashboard Grafana
- Lancer Grafana à http://localhost:3001, puis Data Sources → Add → Prometheus (URL : http://prometheus:9090).
- Importer un JSON de dashboard (ex. community dashboard n°1860 pour Node.js).
- Adapter les panels : CPU, mémoire, latence des requêtes HTTP.
4. Bonnes pratiques de supervision
- Limiter la cardinalité des labels (éviter trop de routes dynamiques).
- Configurer des alertes dans Prometheus (ex. latence > 500 ms).
- Stocker les données à long terme via un remote storage si besoin.
- Automatiser le déploiement avec CI/CD (GitLab CI, Jenkins).
Conclusion
En suivant ce guide, vous disposez d’une supervision robuste pour détecter rapidement anomalies et goulots d’étranglement dans vos microservices Node.js. Vous pouvez étendre cette approche à d’autres technologies, comme AWS ou Kubernetes, pour un monitoring complet de votre infrastructure.
Envie d’aller plus loin et de garantir la fiabilité de votre architecture distribuée ? Contactez notre équipe pour un audit ou une mise en place sur mesure.

