Publié le : 23/05/2024 à 08:00 Mis à jour le : 10/06/2026 à 08:46 Vues : 501

Apprenez à utiliser les transformations Grafana pour reformater, calculer et combiner vos données directement dans l'interface, sans modifier vos sources de données.

1. Introduction aux Transformations Grafana

Comprendre le rôle crucial des transformations dans le cycle de vie de la donnée visualisée.

Le principe du traitement côté client

Les transformations dans Grafana permettent de manipuler le résultat d'une requête après qu'elle a été récupérée de la source de données, mais avant qu'elle ne soit affichée dans le panel. Ce traitement s'effectue dans le navigateur de l'utilisateur. Contrairement aux filtres appliqués directement dans le langage de requête (comme le WHERE en SQL), la transformation agit sur le Data Frame retourné par Grafana.

Pourquoi utiliser les transformations ?

  • Indépendance de la source : Vous pouvez nettoyer des données même si vous n'avez pas la main sur la requête originale.
  • Combinaison multi-sources : C'est l'outil idéal pour corréler des données venant de sources hétérogènes (ex: SQL + Prometheus).
  • Simplification : Évitez des requêtes SQL ou PromQL trop complexes en déléguant la mise en forme à l'interface de Grafana.

2. Transformations de Structure et de Filtrage

Comment nettoyer et organiser vos colonnes et séries.

Organize fields (Organiser les champs)

C'est la transformation la plus utilisée. Elle permet de :

  • Renommer : Donner un nom intelligible à une colonne technique (ex: transformer sum_usage_idle_host en CPU Idle).
  • Masquer : Cacher des colonnes inutiles au rendu final mais nécessaires au calcul.
  • Réordonner : Déplacer les colonnes par simple glisser-déposer pour organiser un tableau.

Filter by name et Filter by value

Ces deux fonctions permettent d'isoler des données précises :

  • Filter by name : Utilise des expressions régulières pour n'afficher que les séries dont le nom correspond à un pattern.
  • Filter data by value : Permet de supprimer des lignes basées sur un seuil (ex: masquer toutes les lignes où le statut est 'OK' pour ne voir que les erreurs).

3. Transformations de Calcul et d'Agrégation

Extraire des statistiques et créer de nouvelles métriques à la volée.

Reduce (Réduire)

La transformation Reduce réduit une série temporelle entière en une valeur unique. C'est indispensable pour les panels de type Stat ou Gauge. Vous pouvez calculer le Max, le Min, la Moyenne ou même le Dernier point non nul.
Exemple : Transformer un graphique de consommation RAM sur 24h en un indicateur affichant uniquement le pic de consommation maximum.

Add field from calculation

Cette fonction permet de créer une nouvelle colonne basée sur une opération mathématique entre deux autres colonnes.
Exemple concret : Si vous avez une colonne Espace_Utilisé et Espace_Total, vous pouvez créer une troisième colonne Pourcentage_Utilisation en appliquant la formule (A / B) * 100 directement dans l'interface.

4. Transformations de Combinaison et Jointure

Unifier des flux de données différents dans une vue cohérente.

Merge et Outer Join

Ces transformations sont essentielles pour l'unification :

  • Merge : Combine plusieurs requêtes ayant la même structure en une seule série (très utile pour fusionner plusieurs index Elasticsearch).
  • Outer Join : Joint des données provenant de requêtes différentes sur la base d'un champ commun (souvent le Time ou un ID). Cela permet d'afficher dans un même tableau des informations venant de deux bases de données distinctes.

Group by (Grouper par)

Similaire au GROUP BY du SQL, cette transformation permet de regrouper les données selon une clé (label ou colonne) et d'appliquer une agrégation sur les autres champs.
Exemple : Vous recevez une liste de conteneurs de tous vos serveurs, et vous utilisez Group by sur le champ 'Host' pour obtenir le nombre de conteneurs par machine.

Lien copié dans le presse-papiers !