« Grafana stocke et surveille mes métriques. »
Non : Grafana ne stocke rien. Il ne fait qu’afficher des données qu’il va chercher ailleurs — dans Prometheus, dans Loki… Cette séparation est fondamentale : d’un côté ceux qui collectent et stockent (Prometheus, Loki), de l’autre celui qui visualise (Grafana). Comprendre ça évite bien des confusions.
À la fin de ce module, tu sauras…
- Déployer Grafana et comprendre son rôle (visualisation seule)
- Connecter Prometheus comme datasource
- Lire et construire un panneau à partir d’une requête PromQL
- Importer un tableau de bord prêt à l’emploi
01Déployer Grafana
Installer, et récupérer l’accès
Manipulehelm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install grafana grafana/grafana -n observabiliteRécupère le mot de passe admin généré, puis ouvre l’interface :
Manipulekubectl -n observabilite get secret grafana -o jsonpath="{.data.admin-password}" | base64 -d; echo
kubectl -n observabilite port-forward svc/grafana 3000:80http://localhost:3000 (login admin + le mot de passe récupéré), tu accèdes à Grafana. Vide pour l’instant : il ne sait pas encore où chercher les données.Comprends Grafana ne stocke rien
Grafana est une couche de visualisation pure. Il n’a pas de base de métriques : à chaque affichage, il interroge en direct une source (Prometheus, Loki, une base SQL…) et dessine le résultat. C’est pourquoi on doit d’abord lui déclarer ses datasources. Cette séparation stockage/affichage est un principe d’architecture : tu peux changer d’outil de visualisation sans toucher à tes données, et inversement.
02Connecter Prometheus (datasource)
Dire à Grafana où sont les métriques
Dans Grafana → Connections → Data sources → Add data source → Prometheus. Renseigne l’URL interne du service Prometheus (résolue par le DNS du cluster, vu en Phase 5) :
Manipulehttp://prometheus-server.observabilite.svc.cluster.localClique Save & test.
ObserveSuccessfully queried the Prometheus API.nom.namespace.svc.cluster.local) — exactement le mécanisme du module 5.6.Comprends le lien entre les briques du projet
Grafana joint Prometheus par son Service Kubernetes, via le DNS interne du cluster. Aucune IP en dur : si le Pod Prometheus est recréé ailleurs, le Service continue de pointer au bon endroit (Phase 5.5-5.6). Tes acquis Kubernetes rendent cette intégration naturelle — la supervision n’est pas un monde à part, elle s’appuie sur tout ce que tu as construit.
03Ton premier panneau
De la requête PromQL au graphe
Crée un dashboard (Dashboards → New → Add visualization, choisis la datasource Prometheus), et entre une requête du module précédent :
Manipulesum(rate(container_cpu_usage_seconds_total{namespace="lab-soria"}[5m]))ObserveComprends panel & dashboard
Un panel = une requête + une façon de l’afficher. Un dashboard = un ensemble de panels regroupés pour raconter une histoire (santé d’un service, vue d’un cluster…). La donnée vient toujours de la datasource ; Grafana ne fait que la mettre en forme. Le vrai savoir-faire reste la requête PromQL (module 8.2) : Grafana l’habille, mais c’est elle qui porte le sens.
04Importer un dashboard prêt
Ne pas réinventer la roue
La communauté publie des milliers de dashboards. Pour Kubernetes, importe-en un par son ID depuis Dashboards → New → Import (par exemple un dashboard « Kubernetes cluster monitoring ») :
Manipule1. Dashboards -> New -> Import
2. Colle un ID de dashboard de la bibliotheque Grafana
3. Choisis la datasource Prometheus
4. ImportObserveComprends un dashboard est du JSON portable
Un dashboard Grafana est décrit en JSON : c’est pourquoi on peut l’exporter, le partager, l’importer par ID, et même le versionner dans Git (« dashboard as code »). Il ne contient pas de données, seulement des requêtes et des mises en forme — il fonctionne chez toi dès qu’il pointe vers ta datasource. Réutiliser un dashboard éprouvé est un réflexe sain ; tu l’adaptes ensuite à tes besoins.
✓Ce que tu retiens
Grafana visualise, mais ne stocke rien : il interroge en direct des datasources (ici Prometheus, via le DNS interne du cluster). Un panel = une requête PromQL + un affichage ; un dashboard = un ensemble de panels. Les dashboards sont du JSON portable (importables, versionnables). La séparation stockage / visualisation te laisse changer une brique sans casser l’autre.
Un tableau de bord pour SORIA Web
À faire
- Déploie Grafana et connecte Prometheus en datasource (Save & test réussi).
- Crée un panel affichant le CPU de ton namespace
lab-soria. - Ajoute 2 panels : mémoire des Pods, et nombre de Pods Running.
- Importe un dashboard Kubernetes de la communauté et branche-le sur ta datasource.
- Regroupe tes panels dans un dashboard « SORIA Web » et sauvegarde-le.
- Documente dans BookStack : rôle de Grafana (visualisation), datasource, panel vs dashboard.
?Auto-évaluation
1. Grafana stocke-t-il les métriques ?
Non. Il ne fait que les afficher en interrogeant en direct une datasource (Prometheus, Loki…). Le stockage est ailleurs.
2. Comment Grafana joint-il Prometheus dans le cluster ?
Par l’URL du Service Prometheus via le DNS interne (nom.namespace.svc.cluster.local), sans IP en dur — le mécanisme de la Phase 5.
3. Qu’est-ce qui porte réellement le sens dans un panel ?
La requête PromQL. Grafana ne fait que l’habiller ; c’est la requête qui définit l’information affichée.