surveillance des performances d’une application Node.js avec Prometheus et Grafana : guide technique
16/03/2026
Surveillance des performances Node.js avec Prometheus et Grafana
Dans ce guide technique, vous apprendrez à mettre en place une solution de monitoring pour votre application Node.js grâce à Prometheus et Grafana. À la fin, vous saurez instrumenter votre code, configurer un serveur Prometheus, et créer des tableaux de bord Grafana pour analyser les métriques clés (temps de réponse, taux d’erreur, consommation mémoire).
1. Instrumenter votre application Node.js
Commencez par ajouter la bibliothèque prom-client pour exposer vos métriques en format Prometheus.
npm install prom-client express
const express = require('express');
const client = require('prom-client');
const app = express();
// Créez un registre de métriques
const register = new client.Registry();
client.collectDefaultMetrics({ register });
// Métrique personnalisée : durée des requêtes
const httpRequestDuration = new client.Histogram({
name: 'http_request_duration_seconds',
help: 'Durée des requêtes HTTP en secondes',
labelNames: ['method', 'route', 'status_code'],
buckets: [0.1, 0.5, 1, 2]
});
register.registerMetric(httpRequestDuration);
// Middleware Express
app.use((req, res, next) => {
const end = httpRequestDuration.startTimer();
res.on('finish', () => {
end({ method: req.method, route: req.path, status_code: res.statusCode });
});
next();
});
// Endpoint exposant les métriques
app.get('/metrics', async (_req, res) => {
res.set('Content-Type', register.contentType);
res.end(await register.metrics());
});
app.listen(3000, () => console.log('App démarrée sur le port 3000'));
2. Déployer Prometheus avec Docker Compose
Utilisez Docker pour lancer Prometheus rapidement :
version: '3.7'
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
ports:
- '9090:9090'
Dans prometheus.yml, configurez votre job Node.js :
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'nodejs-app'
static_configs:
- targets: ['host.docker.internal:3000']
3. Configurer Grafana et créer un dashboard
- Lancez Grafana :
docker run -d -p 3001:3000 grafana/grafana. - Connectez-vous (admin/admin) et ajoutez Prometheus comme Data Source.
- Créez un dashboard et importez un panneau de type
Histogrampourhttp_request_duration_seconds.
Vous pouvez aussi exploiter les dashboards officiels Grafana et adapter les panels.
4. Mesures clés et optimisation
- Temps de réponse (P95) : reste-t-il sous 500 ms ?
- Taux d’erreur (5xx) : surveillez les anomalies supérieures à 1 %
- Usage mémoire/CPU : adaptez la taille de vos conteneurs ou instances selon les pics.
En fonction des données, envisagez :
- Le profilage de votre code (module
clinicpour Node.js). - La mise en place d’un autoscaling (Kubernetes HPA ou instances managées).
Bonnes pratiques de monitoring
- Ne scrapez pas trop fréquemment pour limiter l’impact sur votre app.
- Sécurisez l’accès à
/metrics(pare-feu, authentification interne). - Archivez les métriques anciennes pour alléger Prometheus ou utilisez un long term storage.
- Documentez vos métriques et seuils d’alerte dans votre équipe DevOps.
Conclusion
Vous avez vu comment instrumenter votre application Node.js, déployer Prometheus et Grafana, et créer des dashboards pour surveiller les indicateurs clés. Ce dispositif vous aidera à détecter rapidement les régressions de performance et à dimensionner votre stack Node.js de façon optimale.
Besoin d’un coup de main pour piloter la performance de votre SaaS ? Contactez notre équipe pour une séance de consulting rapide.

