Gravar consultas de expressão de expressão de expressão - 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á.

Gravar consultas de expressão de expressão de expressão

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

Para espaços de trabalho do Grafana compatíveis com a versão 8.x do Grafana, consulteTrabalhando na versão 8 do Grafana.

As expressões do lado do servidor permitem que você manipule dados retornados de consultas com operações matemáticas e outras. As expressões criam novos dados e não manipulam os dados retornados pelas fontes de dados.

Disponíveis sobre expressões

As expressões do lado do servidor permitem que você manipule dados retornados de consultas com operações matemáticas e outras. As expressões criam novos dados e não manipulam os dados retornados pelas fontes de dados, além de algumas pequenas reestruturações de dados para tornar a entrada de dados aceitável para expressões.

Usando expressões

As expressões são usadas principalmente pelo Grafana Alerting. O processamento é feito no lado do servidor, portanto, as expressões podem operar sem uma sessão do navegador. No entanto, as expressões também podem ser usadas com fontes de dados de back-end e visualização.

nota

As expressões não funcionam com alertas antigos do painel.

As expressões têm como objetivo aumentar as fontes de dados, permitindo que consultas de diferentes fontes de dados sejam combinadas ou fornecendo operações indisponíveis em uma fonte de dados.

nota

Quando possível, você deve fazer o processamento de dados dentro da fonte de dados. Copiar dados do armazenamento para o servidor Grafana para processamento é ineficiente, portanto, as expressões são direcionadas ao processamento leve de dados.

As expressões funcionam com consultas de fontes de dados que retornam dados de séries temporais ou números. Eles também operam com dados multidimensionais. Por exemplo, uma consulta que retorna várias séries, em que cada série é identificada por rótulos ou tags.

Uma expressão individual usa uma ou mais consultas ou outras expressões como entrada e adiciona dados ao resultado. Cada expressão ou consulta individual é representada por uma variável que é um identificador nomeado conhecido como RefID (por exemplo, a letra padrãoA ouB).

Para referenciar a saída de uma expressão individual ou uma consulta de fonte de dados em outra expressão, esse identificador é usado como uma variável.

Tipos de expressões

As expressões funcionam com dois tipos de dados.

  • Uma coleção de séries temporais.

  • Uma coleção de números, em que cada número é um item.

Cada coleção é retornada de uma única consulta ou expressão de fonte de dados e representada pelo RefID. Cada coleção é um conjunto, em que cada item do conjunto é identificado exclusivamente por suas dimensões, que são armazenadas como etiquetas ou pares de valores-chave.

Consultas de fontes de dados

As expressões do lado do servidor suportam somente consultas de fontes de dados para fontes de dados de back-end. Geralmente, presume-se que os dados sejam rotulados como dados de séries temporais. No future, pretendíamos adicionar uma afirmação dos dados do tipo de retorno da consulta (número ou série temporal) para que as expressões possam lidar melhor com os erros.

As consultas à fonte de dados, quando usadas com expressões, são executadas pelo mecanismo de expressão. Ao fazer isso, ele reestrutura os dados para serem uma série temporal ou um número por quadro de dados. Então, por exemplo, se estiver usando uma fonte de dados que retorna várias séries em um quadro na exibição de tabela, você pode notar que ela parece diferente quando executada com expressões.

Atualmente, o único formato que não é de série temporal (número) é suportado ao usar quadros de dados se você tiver uma resposta de tabela que retorna um quadro de dados sem hora, colunas de string e uma coluna numérica:

Loc Host AVG_CPU

MIA

A

1

NYC

B

2

O exemplo acima produzirá um número que funciona com expressões. As colunas da cadeia de caracteres se tornam rótulos e a coluna numérica, o valor correspondente. Por exemplo,{"Loc": "MIA", "Host": "A"} com um valor de 1.

Operações

Você pode usar as seguintes operações em expressões: matemática, redução e reamostragem.

Math (Matemática)

Matemática é para fórmulas matemáticas de formato livre em séries temporais ou dados numéricos. As operações matemáticas usam números e séries temporais como entrada e os alteram para números e séries temporais diferentes.

Os dados de outras consultas ou expressões são referenciados com o RefID prefixado com um cifrão, por exemplo$A. Se a variável tiver espaços no nome, você poderá usar uma sintaxe de chaves como${my variable}.

As constantes numéricas podem estar em decimal (2.24), octal (com um zero à esquerda072) ou hexadecimal (com um 0x à esquerda0x2A). Exponenciais e sinais também são suportados (por exemplo,-0.8e-2).

Operadores

Os operadores aritméticos (+binários e unários-,*,/,%, expoente**), relacionais (<>,==,!=,>=,,<=) e lógicos (&&,||, e unários!) são suportados.

A forma como a operação se comporta com os dados depende de se tratar de um número ou de dados de série temporal.

Com operações binárias, como$A + $B ou$A || $B, o operador é aplicado das seguintes maneiras, dependendo do tipo de dados:

  • Se ambos$A e$B forem um número, a operação será executada entre os dois números.

  • Se uma variável for um número e a outra variável for uma série temporal, a operação entre o valor de cada ponto na série temporal e o número será executada.

  • Se ambos$A forem dados de séries temporais, a operação entre cada valor nas duas séries será executada para cada carimbo de data/hora existente em ambos$A$B e.$B AResample operação pode ser usada para alinhar os registros de data e hora.

Resumo:

  • Número número OP = número

  • Número da série OP = série

  • Série OP = série

Como as expressões funcionam com várias séries ou números representados por uma única variável, as operações binárias também realizam uma união (união) entre as duas variáveis. Isso é feito com base nas etiquetas de identificação associadas a cada série ou número individual.

Portanto, se você tiver números com rótulos como{host=web01} in$A e outro número$B com os mesmos rótulos, a operação será executada entre esses dois itens em cada variável e o resultado compartilhará os mesmos rótulos. As regras para o comportamento dessa união são as seguintes:

  • Um item sem rótulos se juntará a qualquer coisa.

  • Se ambos$A$B contiverem apenas um item (uma série ou um número), eles se juntarão.

  • Se os rótulos forem matemáticos exatos, eles se juntarão.

  • Se os rótulos forem um subconjunto do outro, por exemplo, um item dentro$A for rotulado{host=A,dc=MIA} e um item dentro$B for rotulado,{host=A} eles se unirão.

  • Se dentro de uma variável, como,$A houver chaves de tag diferentes para cada item, o comportamento de junção é indefinido.

Os operadores relacionais e lógicos retornam 0 para falso 1 para verdadeiro.

Funções matemáticas

Embora a maioria das funções exista nas próprias operações de expressão, a operação matemática tem algumas funções semelhantes aos operadores ou símbolos matemáticos. Quando as funções podem receber números ou séries, o mesmo tipo do argumento será retornado. Quando se trata de uma série, a operação é executada para o valor de cada ponto na série.

abdominais

abs retorna o valor absoluto de seu argumento, que pode ser um número ou uma série. Por exemplo, abs(-1) ou abs($A).

is_inf

is_inf pega um número ou uma série e retorna1 paraInf valores (negativos ou positivos) e0 para outros valores. Por exemplo, is_inf($A).

nota

Se você precisar verificar especificamente o infinito negativo, por exemplo, você pode fazer uma comparação como$A == infn().

is_nan

is_nan pega um número ou uma série e retorna1NaN valores e0 outros valores. Por exemplo, is_nan($A). Essa função existe porque nãoNaN é igualNaN a.

é_nulo

is_null pega um número ou uma série e retorna1null valores e0 outros valores. Por exemplo, is_null($A).

is_número

is_number pega um número ou uma série e retorna1 para todos os valores de números reais e0 para outros valores (que sãonullInf+,Inf-, eNaN). Por exemplo, is_number($A).

log

Log retorna o logaritmo natural de seu argumento, que pode ser um número ou uma série. Se o valor for menor que 0,NaN será retornado. Por exemplo, log(-1) ou log($A).

inf, infn, nan e null

Todas as funções inf, infn, nan e null retornam um único valor do nome. Eles existem principalmente para testes. Exemplo: null().

round

Round retorna um valor inteiro arredondado. Por exemplo, o round(3.123) ou o round($A).

ceil

Ceil arredonda o número até o valor inteiro mais próximo. Por exemplo, ceil(3.123) retorna 4.

floor

Floor arredonda o número para baixo até o valor inteiro mais próximo. Por exemplo,floor(3.123) retorna3.

Reduzir

Reduzir pega uma ou mais séries temporais retornadas de uma consulta ou expressão e transforma cada série em um único número. Os rótulos das séries temporais são mantidos como rótulos em cada número reduzido produzido.

Campos:

  • Função — A função de redução a ser usada

  • Entrada — A variável (RefID (comoA)) para reamostrar

  • Modo — Permite controlar o comportamento da função de redução quando uma série contém valores não numéricos (null, NaN, +-Inf)

Funções de redução

Contagem

A contagem retorna o número de pontos em cada série.

Mean

A média retorna o total de todos os valores em cada série dividido pelo número de pontos nessa série. Nostrict modo, se algum valor na série for nulo ou nan, ou se a série estiver vazia, NaN será retornado.

Mínimo e máximo

Min e Max retornam o menor ou o maior valor da série, respectivamente. Nostrict modo, se algum valor na série for nulo ou nan, ou se a série estiver vazia, NaN será retornado.

Soma

Sum retorna o total de todos os valores na série. Se a série tiver comprimento zero, a soma será 0. Nostrict modo, se houver algum valor NaN ou Nulo na série, NaN será retornado.

Último

Último retorna o último número da série. Se a série não tiver valores, retornará NaN.

Modos de redução

Restring

No modo estrito, a série de entrada é processada como está. Se algum valor na série não for numérico (nulo, NaN ou +-Inf), NaN será retornado.

Eliminar não numérico

Nesse modo, todos os valores não numéricos (nulo, NaN ou +-Inf) na série de entrada são filtrados antes de executar a função de redução.

Substitua o não numérico

Nesse modo, todos os valores não numéricos são substituídos por um valor predefinido.

Reamostrar

A reamostragem altera os registros de data e hora em cada série temporal para ter um intervalo de tempo consistente. O principal caso de uso é que você possa reamostrar séries temporais que não compartilham os mesmos registros de data e hora para que a matemática possa ser realizada entre elas. Isso pode ser feito reamostrando cada uma das duas séries e, em seguida, em uma operação matemática referenciando as variáveis reamostradas.

Campos:

  • Entrada — A variável de dados de séries temporais (RefID (comoA)) para reamostragem

  • Reamostrar para — A duração do tempo para reamostrar, por exemplo,10s. Unidades, pode ser des segundos,mh por minutos,d por horas,w por dias, por semanas ey por anos.

  • Reduzir a amostra — A função de redução a ser usada quando há mais de um ponto de dados por amostra de janela. Consulte a operação de redução para obter detalhes sobre o comportamento.

  • Upsample — O método a ser usado para preencher uma amostra de janela que não tem pontos de dados.

    • O bloco é preenchido com o último valor conhecido

    • preencha com o próximo valor conhecido

    • fillna para preencher janelas de amostra vazias com NaNs

Gravar uma expressão

Se sua fonte de dados os suportar, o Grafana exibirá o botão Expressão e mostrará todas as expressões existentes na lista do editor de consulta.

Para escrever uma expressão
  1. Abra o painel.

  2. Abaixo da consulta, escolha Expressão.

  3. No campo Operação, selecione o tipo de expressão que você deseja escrever.

  4. Escreva a expressão.

  5. Escolha Apply (Aplicar).

Casos casos especiais

Quando qualquer fonte de dados consultada não retorna nenhuma série ou números, o mecanismo de expressão retornaNoData. Por exemplo, se uma solicitação contiver duas consultas de fonte de dados que são mescladas por uma expressão, seNoData for retornada por pelo menos uma das consultas da fonte de dados, o resultado retornado para toda a consulta seráNoData. Para obter mais informações sobre como o Grafana Alerting processaNoData os resultados, consulteSem tratamento de dados ou casos de erro.