RousselTMLEARNING

Artículo · Grafana: del descubrimiento a la experiencia

Las variables locales

Este artículo está disponible en francés.

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 clauses IN en 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).

📄 Maîtriser les Variables dans Grafana : Dynamisez vos Tableaux de Bord →

Mi seguimiento

  • ⏱ Duración estimada : ≈ 4 min

Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión

💬 Hacer una pregunta

Glossaire de la formation

Observabilidad

La capacidad de conocer el estado interno de un sistema a partir de los datos que emite.Estos datos se clasifican en 3 pilares: logs (registros)métric...

Grafana

Plataforma de código abierto para la visualización de datos y el análisis de métricas interactivas.

Prometheus

Sistema de monitorización y alertas de código abierto, particularmente adaptado para la recopilación de métricas en entornos dinámicos (como Kubernete...

APM (Application Performance Monitoring)

Monitorización del rendimiento de aplicaciones para identificar, diagnosticar y resolver problemas complejos relacionados con el rendimiento y la disp...

k6

Herramienta de código abierto para pruebas de carga (load testing) diseñada para ingeniería de rendimiento, que permite evaluar la fiabilidad y escala...

Trazas distribuidas

Técnica (proveniente del pilar de Trazas) que permite seguir el recorrido completo de una solicitud a través de múltiples microservicios para identifi...

Métricas

Medidas numéricas recopiladas a intervalos regulares (ej: CPU, RAM, tiempo de respuesta) utilizadas para evaluar el estado de salud general de un sist...

Alerting (Alertas)

Proceso que consiste en notificar a los equipos (vía email, Slack, Teams) cuando se detecta un evento específico, un umbral superado o una anomalía.

Código HTTP (HTTP Code)

Códigos de estado HTTP estandarizados que indican el resultado del procesamiento de una solicitud.1xx (Información): 100 Continue, 101 Switching Proto...

Access Log (Registro de acceso)

Archivo de registro que guarda las solicitudes procesadas por un servidor web (Apache, Nginx, Lighttpd, etc.). Permite rastrear la actividad del servi...

Client IP (IP del Cliente)

La dirección IP del usuario que realiza la solicitud hacia el servidor web. Cuando un usuario pasa por un Load Balancer o un proxy (ej: Cloudflare), l...

Timestamp (Marca de tiempo)

La fecha y la hora exactas en las que el servidor recibió la solicitud.Configuración: %t en Apache, $time_local o $time_iso8601 en Nginx.

Request (Solicitud)

La línea de solicitud inicial del cliente. Generalmente incluye el método HTTP (ej: GET), la URL solicitada y la versión del protocolo HTTP.Configurac...

Status Code (Código de estado)

El código de estado HTTP final devuelto por el servidor al cliente (ej: 200 para un éxito, 404 para recurso no encontrado).Configuración: %>s en Apach...

Size (Tamaño)

El volumen de datos devuelto al cliente, medido en bytes (generalmente sin los encabezados HTTP).Configuración: %b u %O en Apache, $body_bytes_sent en...

Referrer (Referente)

La URL de la página web desde la que el cliente hizo clic o siguió un enlace para acceder al recurso actual.Configuración: %{Referer}i en Apache, $htt...

User-Agent

La información de identificación proporcionada por el cliente sobre su navegador, su sistema operativo y su dispositivo. Su estructura estándar a menu...

Response Time (Tiempo de respuesta)

El tiempo total que tarda el servidor en procesar la solicitud y devolver la respuesta al cliente.Configuración: %D (microsegundos) o %T (segundos) en...

Artículos recomendados

Grafana vs Kibana : Quel outil de visualisation choisir ?

Découvrez les différences fondamentales entre Grafana, le roi des métriques multi-sources, et Kib...

Créer des tableaux de bord dans Zabbix : dashboards, widgets et pages

Construire des dashboards Zabbix utiles : pages, widgets (Graph, Problems, Top hosts, Honeycomb, ...

Prometheus : visualiser ses métriques (UI, Grafana et dashboards)

Visualiser les données Prometheus : interface web, graphes PromQL, connexion à Grafana, dashboard...

Les Data Sources dans Grafana : Connectez et unifiez vos données

Apprenez à étendre les capacités de Grafana via les Data Sources. Découvrez les plugins essentiel...

Grafana Cloud : démarrer avec la plateforme managée (Mimir, Loki, Tempo, Alloy)

Découvrir Grafana Cloud : création d'une stack, offre gratuite, envoi de métriques, logs et trace...

DQL en pratique : explorer logs et événements, notebooks, tableaux de bord et performance

Utiliser le Dynatrace Query Language au quotidien : explorer logs et événements, enchaîner les co...

Dashboards et notebooks Datadog : widgets, template variables et bonnes pratiques

Concevoir des dashboards Datadog utiles : types de widgets, template variables, groupes, Powerpac...

Grafana Alloy : Collecte et Transformation de Télémétrie

Apprenez à utiliser Grafana Alloy pour collecter, transformer et acheminer logs, métriques et tra...

PromQL : introduction au langage de requête de Prometheus

Apprendre PromQL, le langage de requête de Prometheus : sélecteurs, rate, sum by, histogrammes et...

Apoyar

♥ APOYAR

Apoya RousselTM Learning

Los cursos, artículos, prácticas y certificados siguen siendo gratuitos y sin publicidad intrusiva. Una contribución libre, por el importe que elijas, financia el alojamiento, los entornos de prácticas y nuevos contenidos.

Contribuir con PayPal Importe libre · tarjeta o cuenta PayPalMás información
QR code PayPal
O escanea este código QR con tu teléfono

¡Gracias, cada contribución cuenta!