📝 Grafana Dashboards (Concepts Fondamentaux & Architecture)

Méta : grafana dashboard monitoring moc zettelkasten

Note mère : Observabilité & Monitoring

Un Dashboard (Tableau de bord) Grafana est l’interface visuelle centrale de l’observabilité. Son rôle est d’interroger des bases de données de séries temporelles (Time-Series, ex: Prometheus) ou de logs (ex: Loki) pour restituer l’information de manière compréhensible.

Règle d’or de l’architecture : Grafana ne stocke aucune donnée. Il ne fait que les lire, les transformer et les afficher.

1. L’Anatomie d’un Dashboard

Un tableau de bord est structuré de manière hiérarchique :

  • Time Picker (SĂ©lecteur de temps) : Le contrĂ´le global en haut Ă  droite. Il dĂ©finit la plage de temps (ex: Last 6 hours) et la frĂ©quence de rafraĂ®chissement (ex: 10s) pour tous les composants du dashboard.

  • Variables (Templating) : Les menus dĂ©roulants en haut Ă  gauche qui permettent Ă  l’utilisateur de filtrer dynamiquement le contenu. (Pour maĂ®triser ce concept, voir comment les configurer dans DĂ©claration des Variables Grafana et comment les appeler dans vos requĂŞtes via Utilisation des Variables Grafana).

  • Rows (Lignes) : Des conteneurs pliables/dĂ©pliables qui regroupent logiquement des Panels (ex: Une ligne “CPU”, une ligne “RĂ©seau”). Astuce performance : Les requĂŞtes d’une ligne pliĂ©e ne sont pas exĂ©cutĂ©es tant qu’elle n’est pas ouverte.

  • Panels (Panneaux) : Le bloc de base visuel. Choisir la bonne reprĂ©sentation graphique est essentiel pour la lisibilitĂ© (voir Grafana Panels : Les Types de Visualisations).

2. Le Cycle de Vie de la Donnée (Workflow Grafana)

Pour construire un Panel efficace, Grafana suit un pipeline de traitement strict. Comprendre cet ordre est essentiel pour débugger :

  1. La Requête (Query) : Grafana envoie la requête à la source de données via le backend. L’utilisation intelligente des variables rend cette requête dynamique. (Pour écrire des requêtes efficaces, consultez PromQL Basics, ou allez plus loin avec PromQL Avancé : Jointures et Opérations Binaires et le fameux “hack” PromQL Avancé : La fonction label_replace()).

  2. La Transformation (Transform) : Une fois les données brutes reçues, Grafana peut les manipuler localement avant l’affichage (fusionner, cacher des colonnes, filtrer des lignes, ou faire des calculs mathématiques). Découvrez cette mécanique dans Grafana Transformations.

  3. Le Rendu Visuel (Panel & Options) : Grafana applique le type de visualisation et formate le texte final. C’est ici que l’on gère les unités, le nettoyage des légendes ou les couleurs conditionnelles (voir Grafana Panels : Manipulation de l’Affichage et Légendes).

3. Les Annotations (Contextualisation)

Les annotations permettent de superposer des événements ponctuels sous forme de lignes verticales directement sur les graphiques temporels.

  • Pourquoi c’est crucial ? Elles permettent de corrĂ©ler un pic CPU ou une chute de trafic avec un Ă©vĂ©nement mĂ©tier.

  • Cas d’usage classiques : Marquer l’heure exacte d’un dĂ©ploiement (via l’API Grafana intĂ©grĂ©e au pipeline CI/CD), signaler un redĂ©marrage de pod, ou afficher le dĂ©clenchement d’une alerte Prometheus.

4. Bonnes Pratiques de Conception (UX / Design)

  • La Règle du “Glance Test” (5 secondes) : Un utilisateur (souvent en situation de stress lors d’un incident) doit comprendre l’état de santĂ© du système en 5 secondes.

    • Action : Placez les valeurs vitales tout en haut (Uptime, Taux d’erreur global), et cachez les graphiques de diagnostic complexes (Memory leaks, I/O Wait) plus bas, dans des Rows pliĂ©es.
  • Standardisation des couleurs (Thresholds) :

    • Vert = OK

    • Orange = Warning (Attention requise bientĂ´t)

    • Rouge = Critique (Action immĂ©diate requise). Ne mettez jamais de rouge pour une information purement factuelle qui ne nĂ©cessite pas d’intervention.

  • Exploiter la RĂ©pĂ©tition (Repeat) : Ne crĂ©ez jamais 50 graphiques Ă  la main pour 50 serveurs. Utilisez une variable configurĂ©e en mode Multi-value, et activez l’option “Repeat by variable” sur votre ligne ou votre panel pour que Grafana gĂ©nère l’affichage dynamiquement.