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.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- 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.
Anatomie d'un panel
Section intitulée « Anatomie d'un panel »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).

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.
Choisir la bonne visualisation
Section intitulée « Choisir la bonne visualisation »Chaque type répond à une question différente. Le tableau ci-dessous résume les usages courants.
| Visualisation | Répond à | Exemple |
|---|---|---|
| Stat | Quelle est la valeur maintenant ? | Requêtes/s, cibles UP |
| Time series | Comment ça évolue dans le temps ? | Latence, trafic par service |
| Gauge | Où se situe-t-on par rapport à un max ? | Taux d'erreur, saturation |
| Pie chart | Quelle répartition ? | Codes HTTP, part par service |
| Table | Quelles valeurs exactes par ligne ? | Top des endpoints |
| Heatmap | Quelle 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.
Panel Stat : une valeur qui saute aux yeux
Section intitulée « Panel Stat : une valeur qui saute aux yeux »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 Time series : suivre une évolution
Section intitulée « Panel Time series : suivre une évolution »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]) ))Panel Gauge : se situer par rapport à un maximum
Section intitulée « Panel Gauge : se situer par rapport à un maximum »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]))* 100On 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 %.

Panel Pie chart : visualiser une répartition
Section intitulée « Panel Pie chart : visualiser une répartition »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.
Régler unités, décimales et seuils
Section intitulée « Régler unités, décimales et seuils »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) :1pour un débit,3pour 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à.
FAQ : questions fréquentes
Section intitulée « FAQ : questions fréquentes »Add → Visualization.topk (par exemple topk(10, ...)), en définissant toujours une unité, et en passant la légende en mode Table avec les valeurs Last et Max. Trop de séries sur un panel le rendent lent et illisible ; l'agrégation et topk sont la solution.À retenir
Section intitulée « À retenir »- Un panel = une requête + une visualisation + des options (unité, seuils, légende).
- Stat pour une valeur, Time series pour une évolution, Gauge pour un pourcentage, Pie pour une répartition.
- Toujours définir l'unité et des seuils cohérents sur l'ensemble des dashboards.
- Limitez les séries avec
topkpour garder un graphe lisible et rapide. - La légende en mode Table (Last, Max) rend un Time series exploitable d'un coup d'oeil.