Logo des Enovateurs
Grafana – guide complet : manipulation simple des widgets

Grafana – guide complet : manipulation simple des widgets

Si vous avez suivi mon précédent article, vous en êtes restés à l’étape de notre guide de présentation de Grafana indiquant que la prochaine étape est la création d’un tableau de bord. Cliquez sur le bouton New Dashboard comme sur l’image ci-dessous.

Grafana - Nouveau Tableau de bord

A ce moment-là, Grafana vous prépare un tableau de bord vide.

Actions Grafana sur un nouveau tableau de bord

Je vous propose un peu de description pour cette page que vous allez voir souvent. On commence par l’encadré violet qui indique le nom de votre tableau de bord. Il sert aussi de navigateur pour passer sur un autre dashboard. La partie verte correspond à un nouveau panneau. Vous y verrez la liste des widgets manipulables et disponibles : il vous suffit de cliquer dessus. Si vous souhaitez ajouter un autre élément (graphique, tableau…) cliquez sur le bouton encadré en rouge. Puis pour sauvegarder votre tableau, vous devez cliquer sur la disquette en haut à droite (encadrée en bleu).

Ajout d’un tableau de données issu d’une requête SQL

Si vous ne savez pas comment écrire votre requête SQL, je vous invite à lire mon article sur MetaBase. Cet outil permet de faire des requêtes avec le clic de votre souris, et transforme ce que vous souhaitez dire en requête SQL compréhensible par Grafana. Cliquez sur le Widget Table pour choisir le mode tableau.

Grafana - Nouveau panneau Table

Après avoir cliqué sur Table, le panneau vous affiche No data to show (partie verte). Normal puisque vous n’avez pas encore indiqué à Grafana ce que vous voulez afficher. La partie violette indique le nom du panneau. Je vous recommande vivement de le modifier, tout simplement pour savoir ce que représente votre tableau. Pour cela, cliquez sur Edit (encadré bleu).

Grafana - Création de requête SQL

Grafana vous place directement sur l’onglet le plus intéressant : la création de requête SQL. Mais avant de vous lancer la-dedans, j’aimerais que vous prêtiez attention à quelques petites choses auparavant.

  • Data Source : default – faites attention à cette liste car vous pouvez facilement vous trompez si vous connectez Grafana à plusieurs bases de données. Aussi je vous conseille de spécifier quelle base de données vous souhaitez interroger.
  • Select 1 : il s’agit de la partie où l’on peut écrire sa requête.
  • Format as : Table – je vous conseille de choisir Table : ainsi, vous verrez directement le résultat de votre requête.
  • L’icône œil (à droite sur la ligne Select) : ce bouton sert à rafraîchir le résultat de votre requête.

Pour ce tutoriel, j’ai choisi de me servir dans le monde de l’open data pour créer une base de données de guide pour Grafana. Si cela vous intéresse, voici la page du wiki de PostgreSql. J’ai choisi la table et le fichier du Price Paid data. Nous allons partir sur une requête simple qui va afficher tout les lignes de notre table land_registry_price_paid_uk.

Grafana - Affiche toutes les données d'une table

Jouer avec les filtres de temps de Grafana

Comme vous pouvez le constater, il est possible de jouer sur le temps (cf encadré rouge ci-dessous). C’est-à-dire afficher des données en fonction d’une période ou d’une durée. Par exemple, on peut demander à Grafana d’afficher les données d’il y a moins de 30 minutes : cela peut être utile si vous surveillez un site e-commerce très actif. Vous pouvez aussi avoir besoin de voir les données d’un mois de l’année dernière en particulier. Pour cela il vous suffit donc de cliquer sur ce bouton de temps en haut à droite. Vous pouvez ensuite utiliser (en vert) les Quick ranges, c’est-à-dire des durées prédéfinies (par exemple, les dernières 24h).

Filtre de temps Grafana

Dans la partie bleue, vous pouvez spécifier un intervalle de temps : par exemple du 11 octobre au 10 août. Pour finir, la section violette permet de rafraîchir votre tableau de bord toutes les x secondes ou minutes. Mon conseil : faites attention à ne pas saturer la base de données aux dépends de vos visiteurs.

Cette partie est plutôt sympathique à personnaliser pour un non développeur, mais pour autant tout n’est pas magique sur nos widgets. Alors comment Grafana repère-t-il la bonne colonne en base de données pour afficher les résultats attendus ?

Les macros dans Grafana

Je vous rassure, je ne les connais pas par cœur et d’ailleurs ce n’est pas utile de les apprendre. Mais c’est comme tout : vous devez juste savoir que ça existe, et connaître l’endroit où vous trouverez de l’aide. Pour cela, je vous invite à cliquer sur le bouton Show Help (encadré rouge sur l’image ci-dessous). Je vous conseille de lire le texte qui se déplie pour mieux appréhender la suite.

Grafana - aide sur les macros

Grâce à ces petites macros, nous allons rendre notre tableau de bord vivant et dynamique. Si nous revenons sur notre table d’exemple, j’aimerais filtrer les éléments sur les dates de transfert. Pour cela, nous allons compléter la condition de rendu grâce au mot-clé SQL Where.

Grafana - Macro exemple Where time

Dans ma requête (encadré vert), j’ai utilisé la macro $__timeFilter avec une colonne qui contient bien évidemment des dates. Cette fonction me permettra d’afficher les données en fonction de la sélection effectuée (encadré rouge). Vous pouvez constater que tout fonctionne correctement en jetant un œil sur l’encadré bleu.

Les informations modifiables d’un widget

Je vous invite à cliquer sur le sous-onglet Général afin de regarder ce que l’on peut modifier.

L'onglet Général d'un widget Graphana

Pour plus de simplicité je vous conseille à minima de saisir un titre sur le panel, histoire de savoir à quoi correspondent les données. Si c’est complexe, vous pouvez saisir une description qui aidera probablement un autre développeur de votre équipe par la suite.

Etirer ou rétrecir un widget

Vous pouvez aussi étirer/rétrécir un widget grâce aux lignes affichées, ou si vous souhaitez gagner de l »espace sur un écran.

Petite description des autres types de widgets

Je me suis rendu compte que sur certains widgets, Grafana propose un mode de requête SQL simplifié. Je vous conseille vivement de passer en mode édition SQL directement, car c’est compliqué à utiliser – même pour moi. Pour activer ce mode, vous devez cliquer sur le bouton Edit SQL (encadré en rouge sur l’image ci-dessous).

Grafana - Passer en mode Edit SQL

Singlestat

Le principe consiste à afficher une valeur unique. Ci-dessous, je joue avec le count (encadré rouge) pour connaître le nombre de lignes sur une période donnée. Vous pourriez par exemple afficher le nombre de nouveaux clients. N’oubliez pas de sélectionner le Format as Table (encadré vert). Le résultat de la requête est visible dans l’encadré violet.

Grafana - Widget SingleStat

Graph

Pour ce widget graphique, je vous conseille d’utiliser le format Time series (encadré bleu). En effet, pour ce genre d’éléments, on souhaite voir les données évoluer au cours du temps. Concernant la requête SQL, il faut faire attention à certains points (dans l’encadré rouge). Vous devez mettre une colonne de temps avec la macro $__time(colonne), suivi d’une colonne dont la donnée agrégée vous intéresse. Par exemple une moyenne par jour, ou une somme, etc. Il ne faut pas oublier de mettre la contrainte WHERE de temps pour que cela puisse varier. Enfin, on termine par le GROUP BY qui doit contenir la colonne de date et potentiellement d’autres colonnes en fonction de la donnée que vous souhaitez faire ressortir.

Grafana - Widget Graph

Heatmap

C’est la même chose que pour les graphiques ci-dessus : même type de requête. Voici le résultat :

Grafana - Widget Heatmap

Titre / texte explicatif

Grâce à ce widget, on peut insérer des notes explicatives sur un tableau de bord particulier. Ou des informations utiles pour les visiteurs de votre Grafana. Vous pouvez écrire en HTML ou en Markdown (écriture à la mode Wikipedia).

Grafana - Titre & Texte explicatif

Alert List

J’aborderai ce type de widget dans un prochain article qui vous expliquera comment créer des alertes. Mais pour vous donner un avant-goût, voici une petite capture d’écran :

Grafana - Widget - Liste d'alertes

Dashboard list

Comme son nom l’indique, il affiche les différents tableaux de bord existants d’un répertoire. Le cas classique d’utilisation ? Créer une page d’accueil par produit ou serveur surveillé.

La Row

Le principe est simple et la fonction est très utile. Vous pouvez regrouper sur un même tableau de bord plusieurs widgets dans une ligne. Cela permet de séparer vos différents widgets par type d’éléments par exemple. Fonction bonus, vous pouvez étendre ou masquer les widgets d’une ligne comme on peut le voir sur l’image ci-dessous. Une row correspond à un titre modifiable avec la petite flèche à gauche (par exemple Serveur Web, Base de données).

Grafana - Widget - Row

Conclusion

Vous avez découvert la quasi-totalité des widgets utiles présents par défaut dans Grafana. J’espère que ces différents tutoriels vous pousseront à utiliser Grafana, ou à imaginer ce que vous pourriez faire avec. Dans un prochain article, nous aborderons tout ce qui concerne la gestion d’utilisateurs.

Jérémy PASTOURET
Jérémy PASTOURET
Journaliste en recherche constante de nouveaux outils plus légers, accessibles à tous et respectueux de la vie privée de leurs utilisateurs.

Commentaires

  • Simon Labrosse

    2020-7-3 08:6

    Bonjour,

    En premier lieux merci pour ce TUTO vraiment top super expliquer.

    Je suis en train de faire un projet sur Grafana mais j’ai un problème et je ne c’est pas du tout d’ou ça pourrait venir, bref le truc que quand je ne suis plus connecter avec mon ordinateur a Grafana la remonter d’info ne ce fait pas alors que quand je suis connecté les info remonte bien. Je voudrait faire de l’historisation de donner. Saurais vous d’ou ca peut venir ?

    Merci d’avance

    cordialement
    LABROSSE Simon

    • Jérémy PASTOURET

      2020-7-5 10:46

      Bonjour,
      Merci pour votre commentaire.
      Concernant votre problème, j’ai besoin de plus de précision sur votre installation.
      Grafana est installé où ? Vos données sont disponibles où ?

      Cordialement,
      Jérémy PASTOURET

  • Eric

    2021-6-18 09:35

    Bonjour,
    J’ai une question concernant la partie requête SQL. On a la possibilité de créer plusieurs requêtes A, B , C … mais à quoi ça sert exactement . Est il possible d’afficher leurs résultats en même temps sur le graphe ? Est il possible des les enchainer ? (si on clique sur un élément du graphe obtenu par la 1ere requête alors il exécute la 2ème ?) Merci pour vos éclaircissements.
    Eric

  • Ryan Kamdem

    2021-10-27 18:18

    Bonjour , S’il vous plait , comment fait t’on pour faire visualiser sur son Dasboard Grafana , les fichiers d’un Serveur Nas en production . Sachant que Grafana communique avec Zabbix

    • Jérémy PASTOURET

      2021-11-5 16:11

      Bonjour,
      Est-ce que Zabbix possède des fonctions ou des propriétés permettant d’accéder aux fichiers sur le serveur NAS ?
      Sinon quel est votre besoin ? Pourquoi avez-vous besoin d’avoir un tableau de bord de fichier ?

  • 2021-11-5 16:59

    Bonsoir , Oui , Zabbix possède des fonctions pour accéder au serveur Nas , j’aimerai pourvoir visualiser sur mon Dashbord l’ensemeble des quantités de fichiers qui transitent entre mes applications qui stockent leurs fichiers dans le NAS . Pouvez-vous m’aider s’il vous plait ?

    • Jérémy PASTOURET

      2021-11-10 15:37

      Bonjour,
      Si votre Zabbix a accès aux informations dont vous avez besoin, il faut installer l’extension Grafana pour Zabbix. Ajouter une nouvelle source de donnée. Lorsque celle-ci est bien connecté, il faut créer des widgets correspondant à votre besoin et utiliser les bonnes propriétés fournies par Zabbix.
      La documentation semble être bien fourni : https://alexanderzobnin.github.io/grafana-zabbix/guides/gettingstarted/.

  • jean michel

    2021-11-5 18:41

    bonjour

    mon Grafana récupère dans une base SQL le nombre de plateau qui passe devant un capteur, jusque la pas de problème.

    mai je souhaite avoir un cadence à heure donc le code ci-dessous fonctionne tres bien sur 7H de passage

    SELECT
    $__timeGroupAlias(Date_Time_Trt,$__interval),
    count(id) / 7
    FROM traitement
    WHERE
    $__timeFilter(Date_Time_Trt)
    GROUP BY 1
    ORDER BY $__timeGroup(Date_Time_Trt,$__interval)

    Mais ce que je n’arrive pas à faire:
    Au lieu de count(id) / 7 serai de divisée le count(id) / PAR LE TEMPS SELECTIONEE dans Grafana

  • Jean-Michel DORMOY

    2022-6-21 15:8
    bonjour Est-ce qu'il existe des prestataires à qui je peux me confier un cahier des charges pour me créer des scripts sur Grafana ? bien à vous
    • Jérémy PASTOURET

      2022-6-21 16:8
      Bonjour, Nous pouvons réaliser ce type de mission. Nous vous invitons à préciser les contours de votre projet par mail à l'adresse contact@les-enovateurs.com Passez une bonne journée.
Ecrire un commentaire

Sobriété

Pour aller plus loin

Découvrez nos tutos !

Les Enovateurs

Rejoignez notre communauté de lecteurs

Retrouvez-nous aussi sur

linkedin