Plantillas y variables - Amazon Managed Grafana

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:

  • $varnameEsta 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.

directionControla 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.