Méta : grafana transformations data-manipulation zettelkasten
📝 Grafana Transformations (Manipulation des Données)
Dans l’architecture de vos tableaux de bord, les “Transformations” s’exécutent côté Grafana (dans le navigateur de l’utilisateur ou sur le backend) après que la requête (PromQL, SQL, etc.) ait retourné ses résultats.
Elles servent à nettoyer, fusionner, calculer ou restructurer la donnée brute avant qu’elle ne soit dessinée sur le graphique (c’est l’étape qui précède la configuration finale expliquée dans Grafana Panels : Manipulation de l’Affichage et Légendes).
💡 Le Super-Pouvoir des Transformations : > Elles permettent de joindre des données provenant de deux sources différentes (ex: croiser l’usage CPU venant de Prometheus avec le nom du propriétaire du serveur stocké dans une base MySQL).
1. Joindre et Combiner plusieurs requĂŞtes
A. Join by field (La jointure SQL-like)
C’est la transformation reine pour créer des tableaux complexes. Elle permet de fusionner les résultats de la Requête A et de la Requête B en se basant sur une colonne commune (le champ).
-
Mode : Outer (Garde tout, met des cellules vides si pas de correspondance) ou Inner (Ne garde que les lignes qui existent Ă la fois dans A et B).
-
Field : Le champ en commun (souvent le
Time, ou un label commeinstanceouserveur). -
Cas d’usage : Afficher dans un même tableau le CPU (Requête A) et la RAM (Requête B) ligne par ligne pour chaque serveur.
B. Merge (Fusionner des séries)
Combine plusieurs requêtes qui ont exactement la même structure en une seule table. Utile si vous avez deux requêtes PromQL distinctes mais que vous voulez qu’elles s’affichent proprement dans un seul tableau de logs ou de statistiques.
2. Nettoyer et Cacher des éléments (Pour les Tableaux)
C’est ici qu’on prépare l’affichage final, en supprimant ce qui pollue la vue.
A. Organize fields (L’outil indispensable)
C’est de loin la transformation la plus utilisée. Elle permet de gérer l’affichage précis des colonnes renvoyées par la base de données.
-
Cacher / Supprimer : Cliquez sur l’icône “Œil” à côté d’un champ (ex:
TimeouValue) pour le faire disparaître du tableau. -
Renommer : Tapez un nouveau nom propre dans la case.
-
Réorganiser : Glissez-déposez les champs pour changer l’ordre des colonnes de gauche à droite.
B. Filter data by values (Le WHERE SQL)
Permet de supprimer des lignes entières du résultat final selon une condition, directement dans Grafana.
-
Cas d’usage : Votre tableau liste tous les serveurs, mais vous voulez n’afficher que les lignes où le CPU > 90%.
-
Configuration :
Condition>CPU>Is Greater Than>90.
3. Calculs et Agrégations
A. Add field from calculation (Calculs entre colonnes)
Crée une nouvelle colonne basée sur des mathématiques entre deux champs existants.
-
Mode Binary operation : Colonne A
+,-,*,/Colonne B. -
Mode Reduce row : Calcule la somme, la moyenne ou le max de toutes les colonnes numériques d’une même ligne.
-
Cas d’usage : Vous avez une colonne
Total RAMetFree RAM. Vous créez une nouvelle colonneRAM Utilisée=Total-Free.
B. Reduce (Réduire une série temporelle)
Transforme une courbe (une série temporelle avec des centaines de points) en une seule ligne de statistiques. Indispensable pour les visualisations de type “Stat” ou “Gauge” si on veut extraire plusieurs valeurs.
-
Mode : Series to rows (1 série = 1 ligne dans le tableau).
-
Calculs au choix :
Last(dernière valeur),Max,Min,Mean(moyenne).
C. Group By (Le GROUP BY SQL)
Regroupe les données selon un champ spécifique et calcule une métrique pour les autres champs.
- Cas d’usage : Vous avez un tableau avec 1000 requêtes HTTP listant l’environnement (Prod/Dev). Vous faites un Group By sur “Environnement” et un Calculate → Count sur les requêtes pour obtenir un petit tableau récapitulatif avec juste 2 lignes : “Prod : 800”, “Dev : 200”.
⚠️ Astuce vitale sur l’exécution : > L’ordre des transformations compte énormément ! Elles s’exécutent de haut en bas. Il faut souvent d’abord faire un “Merge” ou un “Join” (pour rassembler la donnée), puis appliquer un “Organize fields” en dessous pour cacher les colonnes inutiles générées par la jointure.
Ton réseau de notes sur Grafana est maintenant très complet et bien maillé !
Souhaites-tu que l’on s’attaque à un autre gros morceau de l’observabilité, comme l’Alerting Grafana / Prometheus, ou as-tu une autre note technique que tu aimerais formater de cette manière ?