Modelos e variáveis - Amazon Managed Grafana

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Modelos e variáveis

Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana que oferecem suporte ao Grafana versão 8.x.

Para espaços de trabalho do Grafana que suportam a versão 10.x do Grafana, consulte. Trabalhando na versão 10 do Grafana

Para espaços de trabalho do Grafana que suportam a versão 9.x do Grafana, consulte. Trabalhando na versão 9 do Grafana

Uma variável é um espaço reservado para um valor. Você pode usar variáveis em consultas métricas e em títulos de painéis. As variáveis permitem criar painéis mais interativos e dinâmicos. Em vez de codificar coisas como nomes de servidores, aplicativos e sensores em suas consultas métricas, você pode usar variáveis em seu lugar.

As variáveis são exibidas como listas suspensas na parte superior do painel. Quando você altera o valor usando a lista suspensa na parte superior do painel, as consultas métricas do seu painel refletem o novo valor.

Eles podem ser especialmente úteis para administradores que desejam permitir que os espectadores ajustem as visualizações rapidamente, mas não desejam conceder a eles permissões completas de edição. Os visualizadores da Grafana podem usar variáveis.

Ao usar variáveis e modelos, você pode criar painéis de origem única. Se você tiver várias fontes de dados ou servidores idênticos, poderá criar um painel e usar variáveis para alterar o que está visualizando. Isso simplifica a manutenção e a conservação.

Para obter uma lista dos tipos de variáveis compatíveis e instruções para adicionar cada tipo de variável, consulte Tipos de variáveis

Modelos

Um modelo é qualquer consulta que contenha uma variável.

Por exemplo, se você estivesse administrando um painel para monitorar vários servidores, você poderia criar um painel para cada servidor. Ou você pode criar um painel e usar painéis com consultas de modelo, conforme mostrado no exemplo a seguir.

wmi_system_threads{instance=~"$server"}

Os valores das variáveis são sempre sincronizados com o URL usando a sintaxevar-<varname>=value.

Práticas recomendadas variáveis

As listas suspensas de variáveis são exibidas na ordem em que estão listadas na lista de variáveis nas configurações do painel.

Coloque as variáveis que você alterará com frequência na parte superior, para que elas sejam mostradas primeiro, na extremidade esquerda do painel.

Sintaxe variável

Os títulos dos painéis e as consultas métricas podem ver variáveis usando duas sintaxes diferentes:

  • $varnameEssa sintaxe é mais fácil de ler, como no exemplo a seguir:apps.frontend.$server.requests.count. No entanto, você não pode usar uma variável no meio de uma palavra.

  • ${var_name}Use essa sintaxe quando quiser interpolar uma variável no meio de uma expressão.

  • ${var_name:<format>}Esse formato oferece mais controle sobre como o Grafana interpola os valores. Para ter mais informações, consulte Opções avançadas de formato variável.

Antes que as consultas sejam enviadas à sua fonte de dados, a consulta é interpolada, o que significa que a variável é substituída por seu valor atual. Durante a interpolação, o valor da variável pode ser escapado para se adequar à sintaxe da linguagem de consulta e onde ela é usada. Por exemplo, uma variável usada em uma expressão regex em uma consulta do Prometheus terá escape regular. Leia o tópico da documentação específica da fonte de dados para obter detalhes sobre o escape de valor durante a interpolação.

Para obter informações sobre a sintaxe avançada para substituir a formatação padrão da fonte de dados, consulte. Opções avançadas de formato variável

Outras opções de variáveis

Esta seção explica as outras opções de variáveis disponíveis.

Inserindo opções de seleção de variáveis

Você pode usar as Opções de seleção para gerenciar as seleções de opções variáveis. Todas as opções de seleção são opcionais e estão desativadas por padrão.

Multivalor

Se você ativar essa opção, a lista suspensa de variáveis suportará a seleção de várias opções ao mesmo tempo. Para ter mais informações, consulte Formatação de variáveis de vários valores.

Incluir todas as opções

O espaço de trabalho Grafana adiciona uma All opção à lista suspensa de variáveis. Se um usuário final selecionar essa opção, todas as opções de variáveis serão selecionadas.

Personalize todos os valores

Essa opção estará visível somente se a opção Incluir tudo estiver selecionada.

Para definir o valor da All opção, insira a sintaxe regex, glob ou Lucene no campo Personalizar todos os valores.

Por padrão, o All valor inclui todas as opções na expressão combinada. Isso pode se tornar muito longo e causar problemas de desempenho. Às vezes, pode ser melhor especificar um valor personalizado para todos, como uma regex curinga.

Quando você usa a sintaxe personalizada regex, glob ou Lucene na opção Custom all value, ela nunca é escapada, então você deve considerar qual é um valor válido para sua fonte de dados.

Opções avançadas de formato variável

A formatação da interpolação variável depende da fonte de dados, mas há algumas situações em que talvez você queira alterar a formatação padrão.

Por exemplo, o padrão para a fonte de dados MySQL é unir vários valores separados por vírgula com aspas:. 'server01','server02' Em alguns casos, você pode querer ter uma string separada por vírgula sem aspas:. server01,server02 Para fazer isso, use as seguintes opções avançadas de formatação de variáveis.

Sintaxe geral

Sintaxe: ${var_name:option}

Se alguma opção de formatação inválida for especificada, glob é a opção padrão ou alternativa.

CSV

Formata variáveis com vários valores como uma string separada por vírgula.

servers = ['test1', 'test2'] String to interpolate: '${servers:csv}' Interpolation result: 'test1,test2'

Distribuído - OpenTSDB

Formata variáveis com vários valores em formato personalizado para OpenTSDB.

servers = ['test1', 'test2'] String to interpolate: '${servers:distributed}' Interpolation result: 'test1,servers=test2'

Citação dupla

Formata variáveis de valor único e de vários valores em uma string separada por vírgula, escapa " em cada valor por \" e cita cada valor com. "

servers = ['test1', 'test2'] String to interpolate: '${servers:doublequote}' Interpolation result: '"test1","test2"'

Glob - Grafite

Formata variáveis com vários valores em um globo (para consultas de grafite).

servers = ['test1', 'test2'] String to interpolate: '${servers:glob}' Interpolation result: '{test1,test2}'

JSON

Formata variáveis com vários valores como uma string separada por vírgula.

servers = ['test1', 'test2'] String to interpolate: '${servers:json}' Interpolation result: '["test1", "test2"]'

Lucene - OpenSearch

Formata variáveis com vários valores no formato Lucene para. OpenSearch

servers = ['test1', 'test2'] String to interpolate: '${servers:lucene}' Interpolation result: '("test1" OR "test2")'

Código percentual

Formata variáveis de valor único e de vários valores para uso em parâmetros de URL.

servers = ['foo()bar BAZ', 'test2'] String to interpolate: '${servers:percentencode}' Interpolation result: 'foo%28%29bar%20BAZ%2Ctest2'

Barra vertical

Formata variáveis com vários valores em uma string separada por tubos.

servers = ['test1.', 'test2'] String to interpolate: '${servers:pipe}' Interpolation result: 'test1.|test2'

Raw

Desativa a formatação específica da fonte de dados, como aspas simples em uma consulta SQL.

servers = ['test1.', 'test2'] String to interpolate: '${var_name:raw}' Interpolation result: '{test.1,test2}'

Regex

Formata variáveis com vários valores em uma string regex.

servers = ['test1.', 'test2'] String to interpolate: '${servers:regex}' Interpolation result: '(test1\.|test2)'

Citação única

Formata variáveis de valor único e múltiplo em uma string separada por vírgula, escapa ' em cada valor \' e cita cada valor com. '

servers = ['test1', 'test2'] String to interpolate: '${servers:singlequote}' Interpolation result: "'test1','test2'"

Sqlstring

Formata variáveis de valor único e múltiplo em uma string separada por vírgula, escapa ' em cada valor '' e cita cada valor com. '

servers = ["test'1", "test2"] String to interpolate: '${servers:sqlstring}' Interpolation result: "'test''1','test2'"

Texto

Formata variáveis de valor único e de vários valores em sua representação de texto. Para uma única variável, ela retornará apenas a representação do texto. Para variáveis de vários valores, ele retornará a representação de texto combinada com+.

servers = ["test1", "test2"] String to interpolate: '${servers:text}' Interpolation result: "test1 + test2"

Formatação de variáveis de vários valores

Interpolar uma variável com vários valores selecionados é complicado, pois não é simples formatar os vários valores em uma string válida no contexto em que a variável é usada. Grafana tenta resolver isso permitindo que cada plug-in de fonte de dados informe ao mecanismo de interpolação de modelos qual formato usar para vários valores.

nota

A opção Personalizar todos os valores na variável deve estar em branco para que o Grafana formate todos os valores em uma única string. Se deixar em branco, o Grafana concatena (soma) todos os valores na consulta. Algo parecidovalue1,value2,value3. Se um all valor personalizado for usado, em vez disso, o valor será algo como * ouall.

Variáveis de vários valores com uma fonte de dados Graphite

O grafite usa expressões globais. Uma variável com vários valores seria, nesse caso, interpolada como {host1,host2,host3} se o valor da variável atual fosse host1, host2 e host3.

Variáveis de vários valores com uma fonte de dados Prometheus ou InfluxDB

O InfluxDB e o Prometheus usam expressões regex, então a mesma variável seria interpolada como. (host1|host2|host3) Cada valor também teria escape de regex. Caso contrário, um valor com um caractere de controle regex quebraria a expressão regex.

Variáveis de vários valores com uma fonte de dados elástica

A Amazon OpenSearch usa a sintaxe de consulta do Lucene, então a mesma variável seria formatada como. ("host1" OR "host2" OR "host3") Nesse caso, todo valor deve ser escapado para que o valor contenha somente palavras de controle e aspas do Lucene.

Solução de problemas de formatação

O escape e a formatação automáticos podem causar problemas. Pode ser difícil entender a lógica por trás de um problema, especialmente para InfluxDB e Prometheus, onde o uso da sintaxe regex exige que a variável seja usada no contexto do operador regex.

Se você não quiser que o Grafana faça esse escape e formatação automáticos de regex, você deve fazer o seguinte:

  • Desative as opções de opção Incluir tudo com vários valores.

  • Use o [formato de variável bruta] ({{< relref "advanced-variable-format-options.md #raw" >}}).

Filtrando variáveis com regex

Usando a opção Regex Query, você pode filtrar a lista de opções retornadas pela consulta variável ou modificar as opções retornadas.

Esta seção mostra como usar regex para filtrar e modificar valores na lista suspensa de variáveis.

Usando a opção Regex Query, você filtra a lista de opções retornadas pela consulta Variável ou modifica as opções retornadas. Para obter mais informações, consulte Expressões regulares.

Exemplos de filtragem na lista de opções a seguir:

backend_01 backend_02 backend_03 backend_04

Filtragem para que somente as opções que terminam com 01 ou 02 sejam retornadas

Regex:

/.*[01|02]/

Resultado:

backend_01 backend_02

Filtrando e modificando as opções usando um grupo de captura regex para retornar parte do texto

Regex:

/.*(01|02)/

Resultado:

01 02

Filtragem e modificação - Exemplo de Prometheus

Lista de opções:

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

Filtrando e modificando usando grupos nomeados de captura de texto e valor

Usando grupos de captura nomeados, você pode capturar partes separadas de “texto” e “valor” das opções retornadas pela consulta variável. A lista suspensa de variáveis pode conter um nome amigável para cada valor que pode ser selecionado.

Por exemplo, ao consultar a métrica node_hwmon_chip_names Prometheus, ela é mais amigável do que chip_name o valor. chip Comece com o seguinte resultado da consulta variável.

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

Passe pelo seguinte Regex.

/chip_name="(?<text>[^"]+)|chip="(?<value>[^"]+)/g

A lista suspensa a seguir é produzida.

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: Somente nomes text de grupos de value captura são suportados.

Painéis ou linhas repetidos

Você pode criar painéis dinâmicos usando variáveis de modelo. Todas as variáveis em suas consultas se expandem para o valor atual da variável antes que a consulta seja enviada ao banco de dados. Com variáveis, você pode reutilizar um único painel para todos os seus serviços.

Variáveis de modelo podem ser muito úteis para alterar dinamicamente suas consultas em um painel inteiro. Se você quiser que o Grafana crie dinamicamente novos painéis ou linhas com base nos valores que você selecionou, você pode usar o recurso Repetir.

Painéis repetidos

Se você tiver uma variável Multi-value ou Include all value opções ativadas, poderá escolher um painel e fazer com que a Grafana repita esse painel para cada valor selecionado. Você pode encontrar o recurso Repetir na guia Geral no modo de edição do painel.

O direction controla como os painéis são organizados.

Se você escolherhorizontal, os painéis são organizados side-by-side. Grafana ajusta automaticamente a largura de cada painel repetido para que toda a linha seja preenchida. Atualmente, você não pode misturar outros painéis em uma linha com um painel repetido.

Configure Max per row para informar à Grafana quantos painéis por linha você deseja no máximo. O padrão é 4.

Se você escolhervertical, os painéis são organizados de cima para baixo em uma coluna. A largura dos painéis repetidos é a mesma do primeiro painel (o modelo original) que está sendo repetido.

Faça alterações somente no primeiro painel (o modelo original). Para que as alterações entrem em vigor em todos os painéis, você precisa iniciar uma reconstrução dinâmica do painel. Você pode fazer isso alterando o valor da variável (ou seja, a base para a repetição) ou recarregando o painel.

nota

Painéis repetidos exigem que as variáveis tenham um ou mais itens selecionados. Você não pode repetir um painel zero vezes para ocultá-lo.

Linhas repetidas

Conforme visto acima, com os painéis, você também pode repetir as linhas se tiver variáveis definidas com Multi-value Include all value uma opção de seleção.

Para ativar esse recurso, você deve primeiro adicionar uma nova linha usando o menu Adicionar painel. Em seguida, faça uma pausa no título da linha e escolha o botão de engrenagem para acessar o painel de Row Options configuração. Em seguida, você pode selecionar a variável para a qual deseja repetir a linha.

A melhor prática é usar também uma variável no título da linha.