• 1. prérequis et architecture

  • 1.1. stack logicielle

  • 1.2. outils recommandés

  • 2. instrumenter l’application node.js

  • 3. configurer prometheus

  • 4. déployer avec docker-compose

  • 5. créer un dashboard grafana

  • 6. bonnes pratiques

  • 7. conclusion

monitoring prometheus grafana pour microservices node.js : guide complet

Image de monitoring prometheus grafana pour microservices node.js : guide complet

Pour garantir la stabilité et la performance de vos microservices Node.js, un système de monitoring est indispensable. Dans ce guide technique, nous verrons comment :

  • Instrumenter votre application avec prom-client.
  • Configurer Prometheus pour collecter les métriques.
  • Déployer une stack Docker Compose incluant Grafana.
  • Créer un dashboard Grafana pour visualiser les indicateurs clés.

prérequis et architecture

stack logicielle

  • Node.js ≥16
  • Prometheus v2.45
  • Grafana v10
  • Docker & Docker Compose

outils recommandés

1. instrumenter l’application node.js

Dans votre service, ajoutez prom-client pour exposer un endpoint /metrics :

npm install prom-client
// metrics.js
const client = require('prom-client');
const collectDefault = client.collectDefaultMetrics;
collectDefault({ timeout: 5000 });

const httpRequestDuration = new client.Histogram({
  name: 'http_request_duration_seconds',
  help: 'Durée des requêtes HTTP',
  labelNames: ['method', 'route', 'status_code'],
  buckets: [0.1, 0.5, 1, 2.5, 5]
});

module.exports = { client, httpRequestDuration };
-- server.js
const express = require('express');
const { client, httpRequestDuration } = require('./metrics');
const app = 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();
});

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 :3000'));

tip

  • Ne pas trop multiplier les métriques pour éviter la haute cardinalité.

2. configurer prometheus

Créez un fichier prometheus.yml :

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'node_microservice'
    metrics_path: /metrics
    static_configs:
      - targets: ['service-node:3000']

3. déployer avec docker-compose

version: '3.8'
services:
  service-node:
    build: .
    ports:
      - "3000:3000"

  prometheus:
    image: prom/prometheus:v2.45.0
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana:10.0.0
    ports:
      - "3001:3000"
    depends_on:
      - prometheus

Lancez docker-compose up -d puis vérifiez l’accès :

  • Prometheus → http://localhost:9090
  • Grafana → http://localhost:3001 (login/admin)

4. créer un dashboard grafana

  • Ajoutez Prometheus comme source de données (http://prometheus:9090).
  • Importez un dashboard JSON ou créez-en un nouveau.
Exemple de requête PromQL pour la latence moyenne : histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))

bonnes pratiques

  • Définir des alertes dans Prometheus (CPU >80 %, erreurs 5xx supérieures à 1 %).
  • Archiver les métriques anciennes pour conserver un historique raisonnable.
  • Surveiller également les ressources Docker/Kubernetes (via Prometheus Operator).
  • Versionnez vos dashboards Grafana dans Git pour suivre l’évolution.

conclusion

Un monitoring robuste avec Prometheus et Grafana vous permet d’anticiper les incidents et d’optimiser vos microservices Node.js. Pour un audit complet de votre architecture ou une formation dédiée, contactez l’équipe Novane.

IMAGE_TAGS : monitoring, metrics

Image de 10 outils no-code pour lancer votre startup sans coder

10 outils no-code pour lancer votre startup sans coder

Découvrez 10 outils no-code pour lancer votre startup sans coder, du MVP à l’automatisation, sélectionnés et testés par des entrepreneurs.
Image de terraform 1.8 : validation des providers et verrouillage des modules pour sécuriser vos infrastructures

terraform 1.8 : validation des providers et verrouillage des modules pour sécuriser vos infrastructures

Découvrez comment Terraform 1.8 renforce la fiabilité et la sécurité de vos infrastructures avec validation des providers et verrouillage des modules.
Image de pipeline ci/cd pour microservice node.js avec jenkins et docker

pipeline ci/cd pour microservice node.js avec jenkins et docker

Découvrez comment automatiser la construction, les tests et le déploiement d’un microservice Node.js avec Jenkins et Docker pour un pipeline CI/CD robuste.
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Nous contacter