mettre en place la surveillance des performances d’une application node.js sur kubernetes avec prometheus et grafana
31/08/2025
Les équipes DevOps et développeurs Web recherchent souvent une solution pour suivre en temps réel les performances de leurs applications conteneurisées. Dans ce tutoriel, nous expliquons comment surveiller votre application Node.js sur Kubernetes à l’aide de Prometheus et Grafana.
Surveiller les performances de votre application Node.js sur Kubernetes avec Prometheus et Grafana
Étape 1 : déployer Prometheus sur votre cluster Kubernetes
Commencez par installer Prometheus via helm
ou un manifest Kubernetes.
kubectl create namespace monitoring
# Ajouter le repo Helm officiel
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
# Installer Prometheus
helm install prometheus prometheus-community/prometheus \
--namespace monitoring \
--set alertmanager.persistentVolume.size="2Gi" \
--set server.persistentVolume.size="5Gi"
Vous pouvez vérifier le déploiement avec :
kubectl get pods -n monitoring
Étape 2 : instrumenter votre application Node.js avec prom-client
Dans votre projet Node.js (souvent sous Express), ajoutez le module prom-client
pour exposer un endpoint /metrics
:
npm install prom-client
// server.js
const express = require('express');
const client = require('prom-client');
const app = express();
// Collecte des métriques de base
client.collectDefaultMetrics({
timeout: 5000 // intervalle de collecte
});
// Point d'accès metrics
app.get('/metrics', async (req, res) => {
res.set('Content-Type', client.register.contentType);
res.end(await client.register.metrics());
});
app.listen(3000, () => console.log('App running et /metrics disponible'));
Veillez à exposer ce service via un Service
et un Ingress
si nécessaire.
Étape 3 : déployer Grafana et configurer la datasource Prometheus
Installez Grafana dans le namespace monitoring
:
helm install grafana prometheus-community/grafana \
--namespace monitoring \
--set persistence.size=5Gi \
--set adminPassword='ChangeMe123'
Puis, connectez-vous à l’UI (kubectl port-forward svc/grafana 3000:80 -n monitoring
) et ajoutez Prometheus comme source de données :
- URL :
http://prometheus-server.monitoring.svc.cluster.local:80
- Access : Server
Étape 4 : créer un dashboard de performance
Dans Grafana, importez ou créez un dashboard en important l’exemple officiel (ID : 1860
) pour Node.js. Vous pouvez aussi personnaliser :
Métrique | Description |
---|---|
process_cpu_user_seconds_total | Temps CPU utilisé par le processus |
process_resident_memory_bytes | Mémoire vive consommée |
http_requests_total | Nombre total de requêtes HTTP |
Vous obtenez ainsi un suivi précis de la santé de votre service en production.
Bonnes pratiques
- Sécuriser l’accès à Prometheus/Grafana (auth Basic ou OAuth).
- Configurer une rétention adaptée (
--set server.retention=15d
). - Limiter le cardinalité des métriques pour éviter une explosion de la base TSDB.
- Mettre en place des alertes (CPU > 80 % durant 5 min).
Erreurs fréquentes
- Endpoint
/metrics
non exposé : vérifiez le service et l’ingress. - Mauvaise URL Datasource : utilisez toujours le FQDN du service Kubernetes.
- Cardinalité trop élevée : évitez de créer des labels dynamiques à la volée.
Conclusion
En suivant ces étapes, vous disposerez d’un monitoring robuste pour votre application Node.js sur Kubernetes, avec un overhead inférieur à 5 % et la possibilité d’anticiper les incidents. Pour aller plus loin ou obtenir un audit personnalisé, n’hésitez pas à contacter notre équipe.
Vous souhaitez accélérer vos projets SaaS ? Découvrez nos services en développement SaaS et bénéficiez d’un accompagnement sur mesure.