Aller au contenu
Outils medium

Grafana : créer des panels et choisir la bonne visualisation

8 min de lecture

Un panel Grafana associe une requête (PromQL, LogQL, SQL) à une visualisation, puis l'habille d'unités, de seuils et d'une légende. Bien choisir le type de visualisation transforme une donnée brute en information lisible en un coup d'oeil.

Ce guide de référence complète le guide Grafana. Il s'adresse aux profils débutants et intermédiaires qui construisent leurs premiers tableaux de bord. Vous allez créer un panel, choisir la visualisation adaptée (Stat, Time series, Gauge, Pie chart), et régler unités, seuils et légende, avec des exemples PromQL concrets.

  • Créer un panel et écrire sa requête.
  • Choisir le type de visualisation selon la donnée.
  • Régler l'unité, les décimales et les seuils (thresholds).
  • Lire une légende utile (Last, Max) et limiter les séries.
  • Éviter les panels illisibles.

Un panel est l'unité de base d'un dashboard. Il se compose de trois couches : une requête vers une datasource, un type de visualisation qui met la donnée en forme, et des options (unité, seuils, légende). On crée un panel depuis un dashboard avec Add → Visualization, puis on sélectionne la datasource (Prometheus, par exemple).

Éditeur de panel Grafana : aperçu du graphe à gauche, requête PromQL en bas, options de visualisation à droite

Le choix du type de visualisation se fait en haut de la sidebar de droite. Il dépend de la nature de la donnée : une valeur instantanée, une évolution dans le temps, une proportion, une distribution.

Chaque type répond à une question différente. Le tableau ci-dessous résume les usages courants.

VisualisationRépond àExemple
StatQuelle est la valeur maintenant ?Requêtes/s, cibles UP
Time seriesComment ça évolue dans le temps ?Latence, trafic par service
GaugeOù se situe-t-on par rapport à un max ?Taux d'erreur, saturation
Pie chartQuelle répartition ?Codes HTTP, part par service
TableQuelles valeurs exactes par ligne ?Top des endpoints
HeatmapQuelle distribution dans le temps ?Latence par buckets

Le réflexe : une valeur unique va en Stat ou Gauge, une évolution en Time series, une répartition en Pie ou Table.

Le panel Stat affiche une valeur unique, éventuellement colorée par un seuil. Il est idéal pour un indicateur de tête de dashboard. La requête suivante compte le nombre de cibles Prometheus en état de marche :

count(up == 1)

Dans la sidebar, on choisit la visualisation Stat, on met un titre parlant (« Cibles UP »), et on ajoute des seuils : vert par défaut, orange puis rouge en dessous d'un plancher. Le mode de couleur Background peint tout le panel, très visible sur un mur d'écrans.

Panel Stat « Targets UP » sur fond vert, avec la section Thresholds ouverte dans la colonne d'options

Le Time series est le graphe le plus courant : il trace une ou plusieurs séries dans le temps. Pour le trafic HTTP de Prometheus, ventilé par handler :

sum by (handler) (rate(prometheus_http_requests_total[5m]))

On règle l'unité sur requests/sec (reqps) dans Standard options → Unit. Pour la légende, passez-la en mode Table avec les valeurs Last et Max : on lit alors la dernière valeur et le pic de chaque série sans survoler le graphe.

Pour une latence, l'histogramme Prometheus se lit avec histogram_quantile. Ce P99 par handler est une requête validée, à afficher en Time series avec l'unité seconds (s) :

histogram_quantile(0.99,
sum by (handler, le) (
rate(prometheus_http_request_duration_seconds_bucket[5m])
)
)

La Gauge (jauge) montre une valeur sur une échelle bornée, parfaite pour un pourcentage. Le taux d'erreur HTTP 5xx se calcule ainsi :

sum(rate(prometheus_http_requests_total{code=~"5.."}[5m]))
/
sum(rate(prometheus_http_requests_total[5m]))
* 100

On choisit la visualisation Gauge, l'unité Percent (0-100), un Min à 0 et un Max à 100. Les seuils colorent la jauge : vert jusqu'à 0,5 %, orange, puis rouge au-delà de 1 %.

Jauge Grafana « Taux d'erreur HTTP 5xx » à 0 %, arc vert avec les seuils orange et rouge

Le Pie chart répartit un total en parts. Pour la distribution du trafic par code HTTP :

sum by (code) (rate(prometheus_http_requests_total[5m]))

Dans les options du Pie chart, cochez les labels Name et Percent pour afficher le nom et le pourcentage de chaque part. Réservez ce type aux répartitions à peu de catégories ; au-delà de six ou sept parts, une table est plus lisible.

Ces trois réglages font la différence entre un panel brut et un panel pro.

  • Unité (Standard options → Unit) : donne du sens à la valeur (secondes, octets, reqps). Sans unité, un « 0,008 » ne veut rien dire.
  • Décimales (Decimals) : 1 pour un débit, 3 pour une latence en secondes.
  • Seuils (Thresholds) : des paliers de couleur cohérents sur tout le dashboard. Fixez la même grille partout, par exemple latence P99 verte sous 100 ms, orange sous 500 ms, rouge au-delà.
  1. Un panel = une requête + une visualisation + des options (unité, seuils, légende).
  2. Stat pour une valeur, Time series pour une évolution, Gauge pour un pourcentage, Pie pour une répartition.
  3. Toujours définir l'unité et des seuils cohérents sur l'ensemble des dashboards.
  4. Limitez les séries avec topk pour garder un graphe lisible et rapide.
  5. La légende en mode Table (Last, Max) rend un Time series exploitable d'un coup d'oeil.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn