• 1. Introduction

  • 2. Étape 1 : Instrumentation de votre application Node.js

  • 3. Étape 2 : Déploiement de Prometheus et Grafana avec Docker

  • 3.1. Fichier docker-compose.yml

  • 4. Étape 3 : Configuration de Prometheus et création de dashboards

  • 5. Bonnes pratiques

  • 6. Conclusion

guide technique : monitoring de performance de votre application saas node.js avec prometheus et grafana

Image de guide technique : monitoring de performance de votre application saas node.js avec prometheus et grafana

Introduction

Pour garantir la fiabilité et l’évolutivité de votre application SaaS développée en Node.js, un système de monitoring robuste est indispensable. Prometheus et Grafana, deux solutions open-source largement adoptées, offrent une observabilité complète : collecte de métriques, visualisation en temps réel et alerting.

Étape 1 : Instrumentation de votre application Node.js

La première étape consiste à exposer des métriques HTTP via la bibliothèque prom-client.

  1. Installez le client Prometheus :
    npm install prom-client --save
  2. Ajoutez ce code dans votre serveur Express :
    const express = require('express');  
    const client = require('prom-client');  
    const app = express();  
    
    // registre par défaut  
    const collectDefaultMetrics = client.collectDefaultMetrics;  
    collectDefaultMetrics({ timeout: 5000 });  
    
    // compteur personnalisé  
    const httpRequestCounter = new client.Counter({  
      name: 'http_requests_total',  
      help: 'Total des requêtes HTTP reçues'  
    });  
    
    app.use((req, res, next) => {  
      httpRequestCounter.inc();  
      next();  
    });  
    
    // endpoint pour Prometheus  
    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 démarrée sur le port 3000'));  
    

Étape 2 : Déploiement de Prometheus et Grafana avec Docker

Utilisez Docker pour lancer rapidement votre stack de monitoring.

Fichier docker-compose.yml

version: '3.8'  
services:  
  prometheus:  
    image: prom/prometheus:v2.44.0  
    volumes:  
      - ./prometheus.yml:/etc/prometheus/prometheus.yml  
    ports:  
      - "9090:9090"  

  grafana:  
    image: grafana/grafana:9.5.1  
    environment:  
      - GF_SECURITY_ADMIN_PASSWORD=novane123  
    ports:  
      - "3001:3000"  

Étape 3 : Configuration de Prometheus et création de dashboards

Modifiez prometheus.yml pour cibler votre application Node.js :

global:  
  scrape_interval: 15s  

scrape_configs:  
  - job_name: 'nodejs-app'  
    metrics_path: '/metrics'  
    static_configs:  
      - targets: ['host.docker.internal:3000']  

Dans Grafana, importez un dashboard communautaire pour Node.js ou créez vos propres panels :

  • Répartition des codes de réponse (2xx, 4xx, 5xx)
  • Temps de réponse moyen et percentiles (p95, p99)
  • Utilisation CPU/Mémoire de votre service

Bonnes pratiques

  • Séparation des environnements : test, staging, production disposent de champs “job_name” différents.
  • Alerting : configurez alertmanager pour envoyer des notifications Slack ou e-mail dès qu’une métrique dépasse un seuil critique (erreurs > 5% ou latence p95 > 500 ms).
  • Persistance des données : montez un volume Docker pour conserver l’historique des séries temporelles.
  • Optimisation : limitez le nombre de métriques custom à celles qui apportent une réelle valeur métier pour éviter la surcharge.

Conclusion

En moins d’une heure, vous avez mis en place un monitoring performant pour votre application SaaS Node.js, avec une visibilité en temps réel et des alertes proactives. Vous pouvez ainsi réduire de 30 % le temps de rétablissement en cas d’incident et optimiser la capacité de votre infrastructure.

Pour aller plus loin ou bénéficier d’une séance de consulting offerte, n’hésitez pas à nous contacter.

Image de next.js 14 beta : server actions avancées et turbopack 1.0 en détail

next.js 14 beta : server actions avancées et turbopack 1.0 en détail

Plongez dans Next.js 14 beta pour découvrir les Server Actions avancées et Turbopack 1.0, booster vos performances et accélérer vos déploiements.
Image de Comment choisir le CRM SaaS idéal pour booster les ventes de votre PME

Comment choisir le CRM SaaS idéal pour booster les ventes de votre PME

Suivez ce guide non-technique pour choisir le CRM SaaS idéal à votre PME, piloter vos ventes, maximiser votre ROI et faciliter l’adoption par vos équipes
Image de Slack GPT : l’IA intégrée pour optimiser la collaboration en entreprise

Slack GPT : l’IA intégrée pour optimiser la collaboration en entreprise

Découvrez comment Slack GPT intègre l’IA pour résumer automatiquement vos threads, rédiger vos messages et fluidifier la collaboration en entreprise
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 :

Femme en chemise jaune