DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesSurveiller ses applications avec Prometheus et Grafana03 - Créer des dashboards avec Grafana

Détails

  • 25 minutes
  • Intermédiaire

Objectifs

  • Lancer Grafana et connecter une datasource Prometheus
  • Créer un dashboard avec plusieurs types de panels
  • Utiliser les variables de template pour des dashboards dynamiques
Module Surveiller ses applications avec Prometheus et Grafana

Exercice 03 : Créer des dashboards avec Grafana

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Lancer Grafana avec Docker et accéder à l'interface web
  • ✅ Ajouter Prometheus comme datasource
  • ✅ Créer un dashboard vide et y ajouter des panels
  • ✅ Configurer des panels Time series, Gauge et Stat
  • ✅ Créer une variable de template pour filtrer dynamiquement

Durée estimée : 25 minutes

Difficulté : ⭐⭐⭐☆☆ (Intermédiaire)

Prérequis : Exercices 01 et 02 complétés, Prometheus en cours d'exécution


📖 Contexte

Grafana est la solution de visualisation de référence pour Prometheus. Il transforme des requêtes PromQL en graphiques interactifs, tableaux de bord et alertes visuelles. Un bon dashboard Grafana permet de diagnostiquer une anomalie en quelques secondes.


📋 Énoncé

Déployez Grafana, connectez-le à Prometheus, et créez un dashboard de surveillance avec 4 panels couvrant les métriques système essentielles.


🧭 Déroulement de l'exercice

Tâche 1 : Lancer Grafana avec Docker

Lancez Grafana sur le port 3000. Configurez le mot de passe admin via des variables d'environnement.

Indice :

`bash

docker run -d \

--name grafana \

-p 3000:3000 \

-e GF_SECURITY_ADMIN_PASSWORD=admin \

-v grafana-data:/var/lib/grafana \

grafana/grafana-oss

`

Vérification : curl -s http://localhost:3000/api/health | grep ok retourne "database": "ok". Connectez-vous sur http://localhost:3000 avec admin/admin.


Tâche 2 : Ajouter Prometheus comme datasource

Dans Grafana : Connections → Data sources → Add new data source → Prometheus. URL : http://host.docker.internal:9090. Cliquez sur Save & Test.

Indice : Si Prometheus tourne aussi dans Docker sur le même réseau, utilisez le nom du service comme host. Si c'est sur la machine hôte, utilisez http://host.docker.internal:9090 (Linux : ajoutez --add-host=host.docker.internal:host-gateway au docker run).

Vérification : Le message "Successfully queried the Prometheus API" s'affiche en vert.


Tâche 3 : Créer un dashboard et un panel Time series

Allez dans Dashboards → New → New Dashboard → Add visualization. Sélectionnez Prometheus comme datasource. Entrez la requête go_goroutines{job="prometheus"}. Nommez le panel "Goroutines Prometheus". Sauvegardez le dashboard sous le nom "Monitoring Prometheus".

Indice : Dans l'éditeur de panel, l'onglet Query permet d'écrire du PromQL. L'onglet Panel options (à droite) permet de modifier le titre, l'unité et le type de visualisation. Choisissez Time series pour voir l'évolution.

Vérification : Le panel affiche une courbe avec l'évolution du nombre de goroutines dans le temps.


Tâche 4 : Ajouter des panels Gauge et Stat

Ajoutez 2 nouveaux panels au dashboard :

  • Gauge - "Mémoire Prometheus (MB)" :

`

process_resident_memory_bytes{job="prometheus"} / 1024 / 1024

`

Unité : MiB - Min : 0, Max : 500

  • Stat - "Targets actives" :

`

count(up == 1)

`

Réduction : Last, Couleur : green si > 0

Indice : Le type de panel se choisit dans la liste déroulante en haut à droite de l'éditeur. Pour le Gauge, configurez les seuils dans Thresholds : vert < 200, orange < 400, rouge sinon.

Vérification : Le Gauge affiche la mémoire avec une jauge colorée. Le Stat affiche le nombre de targets en gros chiffre vert.


Tâche 5 : Créer une variable de template

Dans les Settings du dashboard → Variables → Add variable :

  • Type : Query
  • Nom : job
  • Query : label_values(up, job)
  • Label : Job

Utilisez la variable dans un panel : up{job="$job"}.

Indice : Après avoir créé la variable, un sélecteur apparaît en haut du dashboard. Chaque panel qui utilise $job se filtre automatiquement selon la sélection.

Vérification : Le sélecteur job apparaît en haut. Changer la valeur filtre les panels qui utilisent $job.


🗂️ Mini-Projet

Créez un docker-compose.yml qui lance Prometheus + Grafana ensemble et automatise l'ajout de la datasource via le mécanisme de provisioning.

yaml
version: "3.8"
services:
  prometheus:
    image: prom/prometheus
    ports: ["9090:9090"]
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana-oss
    ports: ["3000:3000"]
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
    volumes:
      - grafana-data:/var/lib/grafana
      - ./grafana/provisioning:/etc/grafana/provisioning

volumes:
  grafana-data:

Créez grafana/provisioning/datasources/prometheus.yml :

yaml
apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    url: http://prometheus:9090
    isDefault: true

Checkpoints :

  • docker compose up -d démarre les 2 services
  • La datasource Prometheus est automatiquement configurée
  • Le dashboard est accessible et affiche 3 panels
  • La variable de template $job filtre les panels

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Lancer Grafana avec Docker
  • Tâche 2 : Ajouter Prometheus comme datasource
  • Tâche 3 : Créer un dashboard et un panel Time series
  • Tâche 4 : Ajouter des panels Gauge et Stat
  • Tâche 5 : Créer une variable de template
  • 🗂️ Mini-Projet