2. Variables Globales vs Variables Personnalisées #
Distinguer les outils natifs de Grafana des configurations sur mesure.
Les Variables Globales (Built-in) #
Grafana propose des variables intégrées (built-in) qui sont automatiquement disponibles et utilisables partout sans configuration préalable. Elles fournissent des informations contextuelles sur le tableau de bord, l'utilisateur ou la plage horaire.
${__from}/${__to}: Représentent le début et la fin de la plage horaire sélectionnée dans le tableau de bord, exprimés en millisecondes Unix. Utiles pour passer la plage horaire à des liens externes ou des requêtes d'API.${__interval}: L'intervalle de temps calculé par Grafana pour regrouper les données (par exemple, '5m' pour 5 minutes). Cet intervalle est optimisé pour la résolution de votre graphique.${__interval_ms}: L'intervalle de temps en millisecondes.${__user.id}: L'identifiant unique de l'utilisateur actuellement connecté.${__user.login}: Le nom d'utilisateur (login) de l'utilisateur connecté.${__user.email}: L'adresse e-mail de l'utilisateur connecté.${__dashboard.name}: Le nom du tableau de bord actuel.${__dashboard.uid}: L'identifiant unique (UID) du tableau de bord actuel.${__panel.id}: L'identifiant unique du panel actuel.${__panel.name}: Le nom du panel actuel.${__org.id}: L'identifiant unique de l'organisation Grafana actuelle.${__org.name}: Le nom de l'organisation Grafana actuelle.${__url_time_range}: La plage horaire formatée pour être utilisée dans une URL (par exemple,from=1678886400000&to=1678972800000).${__url_variables}: Toutes les variables du tableau de bord formatées pour être utilisées dans une URL.
Les Variables Personnalisées (Custom & Query) #
Ce sont les variables que vous définissez et configurez spécifiquement pour vos tableaux de bord, offrant une flexibilité maximale pour interagir avec vos données :
- Query : Le type de variable le plus puissant. Elle exécute une requête sur une source de données (par exemple, 'Lister tous les noms de serveurs depuis Prometheus' ou 'Récupérer tous les noms de pods Kubernetes') pour générer dynamiquement une liste de valeurs sélectionnables.
- Custom : Permet de définir une liste de valeurs fixes, séparées par des virgules (ex: 'production, staging, development' ou 'true, false'). Utile pour des options prédéfinies qui ne changent pas fréquemment.
- Datasource : Permet à l'utilisateur de changer dynamiquement la source de données utilisée par les panels du tableau de bord. Par exemple, basculer entre deux clusters Prometheus différents ou deux instances Elasticsearch.
- Constant : Une variable cachée qui stocke une valeur fixe. Utile pour des paramètres qui ne doivent pas être modifiés par l'utilisateur mais qui sont utilisés dans les requêtes (ex: un préfixe de nom d'index).
- Text box : Une zone de texte libre où l'utilisateur peut saisir n'importe quelle valeur.
3. Utilisation dans les Dashlets et les Titres #
Comment injecter la dynamique dans vos visualisations.
Syntaxe dans les requêtes #
Pour utiliser une variable dans une requête (PromQL, SQL, Lucene, etc.), Grafana supporte plusieurs syntaxes :
- Syntaxe actuelle (recommandée) : Utilise le préfixe
$(ex:$varname) ou les accolades${varname}. La syntaxe avec accolades est préférable car elle permet d'utiliser des modificateurs de formatage (voir section suivante).
Exemple en PromQL :node_cpu_seconds_total{instance="$instance"}. - Syntaxe dépréciée : L'ancienne syntaxe
[[varname]]est toujours fonctionnelle mais est considérée comme dépréciée et ne devrait plus être utilisée dans les nouveaux tableaux de bord.
Grafana remplace la variable par la valeur sélectionnée par l'utilisateur avant d'envoyer la requête à la source de données.
Titres et Textes dynamiques #
Il est recommandé d'inclure les variables dans les titres de vos panels pour savoir ce que l'on regarde. Si votre variable $app est sur 'EasyTrade', un titre configuré comme Erreurs sur $app s'affichera Erreurs sur EasyTrade. Vous pouvez aussi utiliser ${app:text} pour afficher le label lisible ou ${app:value} pour la valeur technique.
Formats de variables pour les requêtes #
Grafana offre plusieurs options de formatage pour les variables, permettant d'adapter leur sortie au contexte de la requête de la source de données. Ces formats sont spécifiés après le nom de la variable, précédés d'un deux-points (:).
${varname:csv}: Formate la variable en une chaîne de caractères séparée par des virgules. Utile pour les clausesINen SQL (ex:host IN ('server1', 'server2')).${varname:doublequote}: Entoure chaque valeur d'une liste de guillemets doubles (ex:"value1","value2").${varname:singlequote}: Entoure chaque valeur d'une liste de guillemets simples (ex:'value1','value2').${varname:raw}: Retourne la valeur brute de la variable, sans échappement ni formatage.${varname:regex}: Formate la variable pour être utilisée dans une expression régulière (ex:(value1|value2)).${varname:lucene}: Formate la variable pour les requêtes Lucene (ex:(value1 OR value2)).${varname:percentencode}: Encode la valeur pour une utilisation dans une URL (ex: les espaces deviennent%20).${varname:glob}: Formate la variable pour les requêtes de type glob (ex:{value1,value2}).${varname:pipe}: Sépare les valeurs par un pipe (|).${varname:distributed}: Formate pour les requêtes distribuées (par exemple, pour InfluxDB).
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
💬 Discussions récentes de la formation
- Grafana : une variable « service » qui dépend de la variable « environnement »✓ résolu · 1 réponse(s)
Poser une question sur cette leçon →Voir toutes les discussions de la formation
Glossaire de la formation
Observabilité
La capacité à connaître l'état interne d'un système à partir des données qu'il émet.Ces données sont classées en 3 piliers : logsmétriquestracesprofil...
Grafana
Plateforme open source de visualisation de données et d'analyse de métriques interactives.
Prometheus
Système open source de surveillance et d'alerte, particulièrement adapté pour la collecte de métriques dans des environnements dynamiques (comme Kuber...
APM (Application Performance Monitoring)
Surveillance des performances applicatives pour identifier, diagnostiquer et résoudre les problèmes complexes liés aux performances et à la disponibil...
k6
Outil open source de test de charge (load testing) conçu pour l'ingénierie de performance, permettant d'évaluer la fiabilité et la scalabilité des sys...
Traces distribuées
Technique (issue du pilier des Traces) permettant de suivre le cheminement complet d'une requête à travers de multiples micro-services pour identifier...
Métriques
Mesures numériques collectées à intervalles réguliers (ex: CPU, RAM, temps de réponse) utilisées pour évaluer l'état de santé global d'un système au f...
Alerting
Processus consistant à notifier les équipes (via email, Slack, Teams) lorsqu'un événement spécifique, un dépassement de seuil ou une anomalie est déte...
HTTP Code
Codes de statut HTTP standardisés indiquant le résultat du traitement d'une requête.1xx (Information) : 100 Continue, 101 Switching Protocols.2xx (Suc...
Access Log
Fichier de journalisation enregistrant les requêtes traitées par un serveur web (Apache, Nginx, Lighttpd, etc.). Il permet de tracer l'activité du ser...
Client IP
L'adresse IP de l'utilisateur effectuant la requête vers le serveur web. Lorsqu'un utilisateur passe par un Load Balancer ou un proxy (ex: Cloudflare)...
Timestamp
La date et l'heure exactes auxquelles la requête a été reçue par le serveur.Configuration : %t dans Apache, $time_local ou $time_iso8601 dans Nginx.
Request
La ligne de requête initiale du client. Elle comprend généralement la méthode HTTP (ex: GET), l'URL demandée et la version du protocole HTTP.Configura...
Status Code
Le code de statut HTTP final renvoyé par le serveur au client (ex : 200 pour un succès, 404 pour ressource non trouvée).Configuration : %>s dans Apach...
Size
Le volume des données renvoyées au client, mesuré en octets (généralement sans les en-têtes HTTP).Configuration : %b ou %O dans Apache, $body_bytes_se...
Referrer
L'URL de la page web depuis laquelle le client a cliqué ou suivi un lien pour accéder à la ressource actuelle.Configuration : %{Referer}i dans Apache,...
User-Agent
Les informations d'identification fournies par le client concernant son navigateur, son système d'exploitation et son appareil. Sa structure standard ...
Response Time
La durée totale prise par le serveur pour traiter la requête et renvoyer la réponse au client.Configuration : %D (microsecondes) ou %T (secondes) dans...
Grafana Loki
Système de journalisation (logs) multi-tenant, hautement disponible et inspiré de Prometheus. Il est conçu pour être très économe en ressources en n'i...
Articles recommandés
Cross-dashboard variables Grafana : partager des variables entre dashboards
Créez une fois vos variables Grafana et réutilisez-les partout : portée globale ou par dossier, a...
Tableaux de bord Grafana avec la source de données Zabbix
Afficher Zabbix dans Grafana : installer le plugin, créer un utilisateur et un jeton d'API, confi...
Grafana Provisioning : Automatisez la gestion de vos tableaux de bord et sources de données
Découvrez comment utiliser le provisioning de Grafana pour gérer vos configurations (dashboards, ...
Grafana Assistant : L'IA au service de l'observabilité
Découvrez Grafana Assistant, l'intelligence artificielle intégrée à Grafana Cloud. Apprenez comme...
Métriques Dynatrace : Data Explorer, sélecteurs de métriques, API et tableaux de bord
Exploiter les métriques dans Dynatrace : métriques intégrées et personnalisées, Data Explorer, sy...
Bonnes pratiques Grafana : dashboards, provisioning, performances et sécurité
Bonnes pratiques Grafana : conception de dashboards lisibles, variables, dashboards as code, prov...
Maîtriser les Transformations dans Grafana : Manipulez vos données avec agilité
Apprenez à utiliser les transformations Grafana pour reformater, calculer et combiner vos données...
La stack LGTM (Loki, Grafana, Tempo, Mimir) : architecture et mise en place
Comprendre la stack LGTM de Grafana Labs : Loki pour les logs, Grafana pour la visualisation, Tem...
Grafana : maîtriser les requêtes (PromQL, LogQL, SQL et expressions)
Construire des requêtes efficaces dans Grafana : éditeur de requêtes, Query Inspector, PromQL, Lo...