Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Plantillas y variables
Este tema de documentación está diseñado para los espacios de trabajo de Grafana que admiten la versión 8.x de Grafana.
Para ver los espacios de trabajo de Grafana que admiten la versión 10.x de Grafana, consulte. Trabajando en Grafana versión 10
Para ver los espacios de trabajo de Grafana que admiten la versión 9.x de Grafana, consulte. Trabajando en Grafana versión 9
Una variable es un marcador de posición para un valor. Puede usar variables en las consultas de métricas y en los títulos de los paneles. Las variables le permiten crear paneles de control más interactivos y dinámicos. En lugar de codificar de forma rígida elementos como los nombres de los servidores, las aplicaciones y los sensores en las consultas de métricas, puede utilizar variables en su lugar.
Las variables se muestran en forma de listas desplegables en la parte superior del panel de control. Al cambiar el valor mediante la lista desplegable situada en la parte superior del panel, las consultas de métricas del panel reflejan el nuevo valor.
Estas pueden resultar especialmente útiles para los administradores que desean permitir a los espectadores ajustar las visualizaciones rápidamente, pero no quieren concederles permisos de edición completos. Los visores de Grafana pueden usar variables.
Al usar variables y plantillas, puede crear paneles de control de una sola fuente. Si tiene varias fuentes de datos o servidores idénticos, puede crear un panel y usar variables para cambiar lo que está viendo. Esto simplifica el mantenimiento y la conservación.
Para obtener una lista de los tipos de variables admitidos y las instrucciones para agregar cada tipo de variable, consulte Tipos de variables
Plantillas
Una plantilla es cualquier consulta que contiene una variable.
Por ejemplo, si administrara un panel para supervisar varios servidores, podría crear un panel para cada servidor. O bien, puede crear un panel y utilizar paneles con consultas de plantilla, como se muestra en el siguiente ejemplo.
wmi_system_threads{instance=~"$server"}
Los valores de las variables siempre se sincronizan con la URL mediante la sintaxisvar-<varname>=value
.
Prácticas recomendadas para variables
Las listas desplegables de variables se muestran en el orden en que aparecen en la lista de variables de la configuración del panel de control.
Coloca las variables que cambiarás con frecuencia en la parte superior, de modo que se muestren primero, en el extremo izquierdo del panel de control.
Sintaxis de variables
Los títulos de los paneles y las consultas de métricas pueden ver las variables mediante dos sintaxis diferentes:
-
$varname
Esta sintaxis es más fácil de leer, como en el siguiente ejemplo:apps.frontend.$server.requests.count
. Sin embargo, no puede usar una variable en medio de una palabra. -
${var_name}
Use esta sintaxis cuando desee interpolar una variable en medio de una expresión. -
${var_name:<format>}
Este formato le da más control sobre la forma en que Grafana interpola los valores. Para obtener más información, consulte Opciones avanzadas de formato variable.
Antes de enviar las consultas a la fuente de datos, la consulta se interpola, lo que significa que la variable se reemplaza por su valor actual. Durante la interpolación, es posible que el valor de la variable se escape para ajustarlo a la sintaxis del lenguaje de consulta y al lugar en el que se utiliza. Por ejemplo, una variable que se utilice en una expresión de expresiones regulares en una consulta de Prometheus tendrá un escape de expresiones regulares. Lea el tema de la documentación específico de la fuente de datos para obtener más información sobre el escape de valores durante la interpolación.
Para obtener información sobre la sintaxis avanzada para anular el formato predeterminado de la fuente de datos, consulte. Opciones avanzadas de formato variable
Otras opciones de variables
En esta sección se explican las demás opciones de variables disponibles.
Introducir opciones de selección de variables
Puede utilizar las opciones de selección para gestionar las selecciones de opciones variables. Todas las opciones de selección son opcionales y están desactivadas de forma predeterminada.
Valores múltiples
Si activas esta opción, la lista desplegable de variables permite seleccionar varias opciones al mismo tiempo. Para obtener más información, consulte Formatear variables con varios valores.
Opción Incluir todas
El espacio de trabajo de Grafana añade una All
opción a la lista desplegable de variables. Si un usuario final selecciona esta opción, se seleccionan todas las opciones variables.
Personalice todos los valores
Esta opción solo está visible si se selecciona la opción Incluir todo.
Para definir el valor de la All
opción, introduzca la sintaxis regex, glob o Lucene en el campo Personalizar todos los valores.
De forma predeterminada, el All
valor incluye todas las opciones de la expresión combinada. Esto puede llegar a ser muy largo y provocar problemas de rendimiento. A veces puede ser mejor especificar un valor único personalizado, como una expresión regular comodín.
Al utilizar la sintaxis regex, glob o Lucene personalizada en la opción Personalizar todos los valores, nunca se escapa, por lo que debe tener en cuenta qué valor es válido para la fuente de datos.
Opciones avanzadas de formato variable
El formato de la interpolación de variables depende de la fuente de datos, pero hay algunas situaciones en las que es posible que desee cambiar el formato predeterminado.
Por ejemplo, el valor predeterminado de la fuente de datos de MySQL es unir varios valores separados por comas entre comillas:. 'server01','server02'
En algunos casos, es posible que desee tener una cadena separada por comas sin comillas:. server01,server02
Para ello, utilice las siguientes opciones avanzadas de formato variable.
Sintaxis general
Sintaxis: ${var_name:option}
Si se especifica alguna opción de formato no válida, glob
es la opción por defecto o alternativa.
CSV
Formatea las variables con varios valores como una cadena separada por comas.
servers = ['test1', 'test2'] String to interpolate: '${servers:csv}' Interpolation result: 'test1,test2'
Distribuido: OpenTSDB
Formatea variables con varios valores en un formato personalizado para OpenTSDB.
servers = ['test1', 'test2'] String to interpolate: '${servers:distributed}' Interpolation result: 'test1,servers=test2'
Comilla doble
Formatea las variables de un solo valor y de varios valores en una cadena separada por comas, escapa "
en cada valor por y cita cada valor con\"
. "
servers = ['test1', 'test2'] String to interpolate: '${servers:doublequote}' Interpolation result: '"test1","test2"'
Glob: grafito
Formatea las variables con varios valores en un globo (para consultas de Graphite).
servers = ['test1', 'test2'] String to interpolate: '${servers:glob}' Interpolation result: '{test1,test2}'
JSON
Formatea las variables con varios valores como una cadena separada por comas.
servers = ['test1', 'test2'] String to interpolate: '${servers:json}' Interpolation result: '["test1", "test2"]'
Lucene - OpenSearch
Formatea variables con varios valores en formato Lucene para. OpenSearch
servers = ['test1', 'test2'] String to interpolate: '${servers:lucene}' Interpolation result: '("test1" OR "test2")'
Código porcentual
Formatea las variables de un solo valor y de varios valores para usarlas en los parámetros de URL.
servers = ['foo()bar BAZ', 'test2'] String to interpolate: '${servers:percentencode}' Interpolation result: 'foo%28%29bar%20BAZ%2Ctest2'
Canalización
Formatea las variables con varios valores en una cadena separada por tuberías.
servers = ['test1.', 'test2'] String to interpolate: '${servers:pipe}' Interpolation result: 'test1.|test2'
Raw
Desactiva el formato específico de la fuente de datos, como las comillas simples en una consulta SQL.
servers = ['test1.', 'test2'] String to interpolate: '${var_name:raw}' Interpolation result: '{test.1,test2}'
Expresión regex
Formatea las variables con varios valores en una cadena de expresiones regulares.
servers = ['test1.', 'test2'] String to interpolate: '${servers:regex}' Interpolation result: '(test1\.|test2)'
Cita única
Formatea las variables de uno o varios valores en una cadena separada por comas, coloca un escapa '
en cada valor y cita cada valor con\'
. '
servers = ['test1', 'test2'] String to interpolate: '${servers:singlequote}' Interpolation result: "'test1','test2'"
Cadena SQL
Formatea las variables de uno o varios valores en una cadena separada por comas, escapa '
en cada valor y cita cada valor con''
. '
servers = ["test'1", "test2"] String to interpolate: '${servers:sqlstring}' Interpolation result: "'test''1','test2'"
Texto
Formatea las variables de un solo valor y de varios valores para incluirlas en su representación textual. Para una sola variable, simplemente devolverá la representación de texto. Para las variables con varios valores, devolverá la representación de texto combinada con+
.
servers = ["test1", "test2"] String to interpolate: '${servers:text}' Interpolation result: "test1 + test2"
Formatear variables con varios valores
Interpolar una variable con varios valores seleccionados es complicado, ya que no es fácil formatear los múltiples valores en una cadena que sea válida en el contexto dado en el que se usa la variable. Grafana intenta resolver esto habilitando cada complemento de fuente de datos para informar al motor de interpolación de plantillas qué formato usar para múltiples valores.
nota
La opción Personalizar todos los valores de la variable debe estar en blanco para que Grafana formatee todos los valores en una sola cadena. Si lo deja en blanco, la Grafana concatena (suma) todos los valores de la consulta. Algo value1,value2,value3
así como. Si se usa un all
valor personalizado, entonces el valor será algo así como *
oall
.
Variables de valores múltiples con una fuente de datos de Graphite
Graphite usa expresiones globales. En este caso, una variable con varios valores se interpolaría como {host1,host2,host3}
si el valor de la variable actual fuera host1, host2 y host3.
Variables de valores múltiples con una fuente de datos de Prometheus o InfluxDB
InfluxDB y Prometheus usan expresiones regex, por lo que se interpolaría la misma variable como. (host1|host2|host3)
Cada valor también estaría excluido de expresiones regulares. De lo contrario, un valor con un carácter de control de expresión regular rompería la expresión regular.
Variables de valores múltiples con una fuente de datos elástica
Amazon OpenSearch usa la sintaxis de consulta de Lucene, por lo que se formatearía la misma variable como. ("host1" OR "host2" OR
"host3")
En este caso, todos los valores deben estar separados para que solo contengan palabras de control y comillas de Lucene.
Solución de problemas de formato
El filtrado y el formateo automáticos pueden provocar problemas. Puede resultar complicado comprender la lógica detrás de un problema, especialmente para InfluxDB y Prometheus, donde el uso de la sintaxis de expresiones regulares requiere que la variable se use en el contexto de un operador de expresiones regulares.
Si no desea que Grafana extraiga y formatee automáticamente las expresiones regulares, debe realizar una de las siguientes acciones:
-
Desactive las opciones de la opción Incluir todo con varios valores.
-
Utilice el [formato de variable sin procesar] ({{< relref "advanced-variable-format-options.md #raw" >}}).
Filtrar variables con expresiones regulares
Con la opción Consulta de expresiones regulares, puede filtrar la lista de opciones devuelta por la consulta de variables o modificar las opciones devueltas.
En esta sección se muestra cómo utilizar las expresiones regulares para filtrar y modificar los valores de la lista desplegable de variables.
Con la opción Consulta de expresiones regulares, se filtra la lista de opciones devueltas por la consulta de variables o se modifican las opciones devueltas. Para obtener más información, consulte Expresiones regulares
Ejemplos de filtrado en la siguiente lista de opciones:
backend_01 backend_02 backend_03 backend_04
Filtrar para que solo se devuelvan las opciones que terminan en 01
o 02
se devuelven
Regex:
/.*[01|02]/
Resultado:
backend_01 backend_02
Filtrar y modificar las opciones mediante un grupo de captura de expresiones regulares para devolver parte del texto
Regex:
/.*(01|02)/
Resultado:
01 02
Filtrado y modificación: ejemplo de Prometheus
Lista de opciones:
up{instance="demo.robustperception.io:9090",job="prometheus"} 1 1521630638000 up{instance="demo.robustperception.io:9093",job="alertmanager"} 1 1521630638000 up{instance="demo.robustperception.io:9100",job="node"} 1 1521630638000
Regex:
/.*instance="([^"]*).*/
Resultado:
demo.robustperception.io:9090 demo.robustperception.io:9093 demo.robustperception.io:9100
Filtrar y modificar mediante grupos de captura de valores y texto con nombre asignado
Al usar grupos de captura con nombre asignado, puede capturar partes separadas de «texto» y «valor» de las opciones devueltas por la consulta de variables. La lista desplegable de variables puede contener un nombre descriptivo para cada valor que se pueda seleccionar.
Por ejemplo, al consultar la métrica de node_hwmon_chip_names
Prometheus, es más amigable que chip_name
el valor. chip
Comience con el siguiente resultado de consulta variable.
node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_0",chip_name="enp216s0f0np0"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_1",chip_name="enp216s0f0np1"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_2",chip_name="enp216s0f0np2"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_3",chip_name="enp216s0f0np3"} 1
Pásala por la siguiente expresión regular.
/chip_name="(?<text>[^"]+)|chip="(?<value>[^"]+)/g
Se produce la siguiente lista desplegable.
Display Name Value ------------ ------------------------- enp216s0f0np0 0000:d7:00_0_0000:d8:00_0 enp216s0f0np1 0000:d7:00_0_0000:d8:00_1 enp216s0f0np2 0000:d7:00_0_0000:d8:00_2 enp216s0f0np3 0000:d7:00_0_0000:d8:00_3
Nota: Solo se admiten los nombres de los grupos de value
captura text
y los nombres de los grupos de captura.
Paneles o filas que se repiten
Puede crear cuadros de mando dinámicos mediante variables de plantilla. Todas las variables de las consultas se expanden hasta el valor actual de la variable antes de que la consulta se envíe a la base de datos. Con las variables, puede reutilizar un único panel para todos sus servicios.
Las variables de plantilla pueden resultar muy útiles para cambiar dinámicamente las consultas en todo un panel de control. Si desea que Grafana cree dinámicamente nuevos paneles o filas en función de los valores que ha seleccionado, puede utilizar la función Repetir.
Paneles repetidos
Si tienes una variable Multi-value
u Include all
value
opciones activadas, puedes elegir un panel y hacer que Grafana repita ese panel para cada valor seleccionado. Puedes encontrar la función de repetición en la pestaña General en el modo de edición de paneles.
direction
Controla la disposición de los paneles.
Si lo deseahorizontal
, se organizan los paneles side-by-side. Grafana ajusta automáticamente el ancho de cada panel repetido para que se llene toda la fila. Actualmente, no se pueden mezclar otros paneles de una fila con un panel repetido.
Configúrelo Max per row
para decirle a Grafana cuántos paneles por fila desea como máximo. El valor predeterminado es 4.
Si lo deseavertical
, los paneles se organizan de arriba a abajo en una columna. El ancho de los paneles repetidos es el mismo que el del primer panel (la plantilla original) que se repite.
Realice cambios únicamente en el primer panel (la plantilla original). Para que los cambios surtan efecto en todos los paneles, debe iniciar una reconstrucción dinámica del panel. Para ello, puede cambiar el valor de la variable (es decir, la base de la repetición) o volver a cargar el panel.
nota
Los paneles que se repiten requieren variables para tener uno o más elementos seleccionados. No puede repetir un panel cero veces para ocultarlo.
Repetir filas
Como se ha visto anteriormente, con los paneles, también puede repetir filas si tiene variables configuradas Multi-value
o con la opción Include all value
de selección.
Para activar esta función, primero debe añadir una nueva fila mediante el menú Añadir panel. A continuación, haga una pausa en el título de la fila y pulse el botón de engranaje para acceder al panel Row Options
de configuración. A continuación, puede seleccionar la variable para la que desee repetir la fila.
Se recomienda utilizar también una variable en el título de la fila.