Todos os produtos
Search
Central de documentação

Simple Log Service:Especifique expressões de avaliação

Última atualização: Jul 10, 2026

Em uma regra de alerta, as expressões de avaliação determinam se a condição para acionar um alerta foi atendida e avaliam a severidade dinâmica do alerta.

Visão geral

Os resultados das instruções de consulta servem como entrada, e os campos dos resultados da operação de conjunto atuam como variáveis. Se a expressão de avaliação retornar true, o sistema acionará um alerta.

image

Limites

As expressões de avaliação em regras de alerta possuem os seguintes limites:

  • Coloque números negativos entre parênteses (). Exemplo: x+(-100)<100.

  • O sistema converte valores numéricos para números de ponto flutuante de 64 bits. O uso em comparações, como verificações de igualdade, pode gerar erros.

  • Os nomes de variáveis podem conter apenas letras e dígitos, e devem começar com uma letra.

  • Uma expressão de avaliação deve ter entre 1 e 128 caracteres.

  • Um alerta é acionado somente quando uma expressão de avaliação retorna true e o número de vezes consecutivas que a condição de gatilho é atendida alcança o valor do parâmetro Threshold of Continuous Triggers. Por exemplo, se uma expressão de avaliação for 100+100, o resultado do cálculo será 200, que não corresponde ao valor true. Nesse caso, nenhum alerta é acionado.

  • true, false, cifrão ($) e ponto (.) são palavras reservadas para expressões de avaliação. Não use essas palavras reservadas como variáveis.

Sintaxe

A tabela a seguir descreve os tipos de sintaxe compatíveis com as expressões de avaliação.

Nota

Os nomes de campo referem-se aos campos retornados em um conjunto de resultados. Use strings como nomes de campo. Evite nomes de campo que contenham apenas dígitos ou caracteres especiais, como o sinal de porcentagem (%). Se um nome de campo contiver caracteres especiais ou apenas dígitos, coloque-o entre colchetes []. Exemplos:

  • [5xx percentage (%)] > 20

  • [404] > 20

Tipo de sintaxe

Operador

Método de operação

Exemplo

Operação entre variáveis

Operação entre uma constante não string e uma variável

Operação entre uma constante string e uma variável

Operadores aritméticos

adição (+), subtração (-), multiplicação (*), divisão (/) e módulo (%)

Antes da aplicação de um operador aritmético, o sistema converte os operandos esquerdo e direito para números de ponto flutuante de 64 bits.

Antes da aplicação de um operador aritmético, o sistema converte os operandos esquerdo e direito para números de ponto flutuante de 64 bits.

Não compatível.

  • x * 100 + y > 200

  • x % 10 > 5

Operadores de comparação

Operadores de comparação:

maior que (>), maior ou igual a (>=), menor que (<), menor ou igual a (<=), igual a (==) e diferente de (!=)

O Simple Log Service aplica as seguintes regras de comparação em ordem de precedência:

  1. O sistema converte os operandos esquerdo e direito para números de ponto flutuante de 64 bits e depois os compara com base na ordem numérica. Se a conversão falhar, a regra da próxima prioridade será aplicada.

  2. O sistema converte os operandos esquerdo e direito para strings e depois os compara com base na ordem alfabética.

O sistema converte os operandos esquerdo e direito para números de ponto flutuante de 64 bits e depois os compara.

O sistema converte os operandos esquerdo e direito para strings e depois os compara com base na ordem alfabética.

  • x >= 0

  • x < 100

  • x <= 100

  • x == 100

  • x == "foo"

  • (x > 100) == true

    Nota

    Constantes booleanas são compatíveis.

Operadores de expressão regular:

correspondência regex (=~) e não correspondência regex (!~)

Nota
  • Escape barras invertidas (\).

  • A sintaxe Regular Expression 2 (RE2) é utilizada. Para mais informações, consulte Syntax.

Antes da aplicação de um operador de expressão regular, o sistema converte os operandos esquerdo e direito para strings.

Não compatível.

Antes da aplicação de um operador de expressão regular, o sistema converte os operandos esquerdo e direito para strings.

Correspondência regex: x =~ "\\w+".

Operadores lógicos

Operadores lógicos:

AND (&&) e OR (||)

Os operandos esquerdo e direito devem ser subexpressões, e o resultado da operação deve ser um valor booleano. Por exemplo, a expressão de avaliação é $0.success_ratio < 90 && $1.Average response time > 60.

Os operandos esquerdo e direito devem ser subexpressões, e o resultado da operação deve ser um valor booleano. Por exemplo, a expressão de avaliação é $0.success_ratio < 90 && $1.Average response time > 60.

Os operandos esquerdo e direito devem ser subexpressões, e o resultado da operação deve ser um valor booleano. Por exemplo, a expressão de avaliação é $0.success_ratio < 90 && $1.Average response time > 60.

  • x >= 0 && y <= 100

  • x > 0 || y >0

Operador Not

Operador Not (!)

O operando necessário deve ser uma subexpressão, e o resultado da operação deve ser um valor booleano. Por exemplo, a expressão de avaliação é !($0.success_ratio < 90).

Não use este operador diretamente nos campos dos resultados de operações de conjunto.

O operando necessário deve ser uma subexpressão, e o resultado da operação deve ser um valor booleano. Por exemplo, a expressão de avaliação é !($0.success_ratio < 90).

Não use este operador diretamente nos campos dos resultados de operações de conjunto.

O operando necessário deve ser uma subexpressão, e o resultado da operação deve ser um valor booleano. Por exemplo, a expressão de avaliação é !($0.success_ratio < 90).

Não use este operador diretamente nos campos dos resultados de operações de conjunto.

!(a < 1 && a > 100)

Função contains

Função contains

Antes da execução da função contains, o sistema converte os operandos esquerdo e direito para strings.

Não compatível.

Antes da execução da função contains, o sistema converte os operandos esquerdo e direito para strings.

contains(foo, 'hello'): Se retornar true, a string foo contém a substring hello.

Parênteses

Parênteses ()

Use parênteses () para substituir a ordem de precedência padrão no cálculo.

Use parênteses () para substituir a ordem de precedência padrão no cálculo.

Use parênteses () para substituir a ordem de precedência padrão no cálculo.

x * (y + 100) > 100

Avalie os resultados de operações de conjunto

O Simple Log Service oferece suporte a monitoramento associado para até três conjuntos de dados e avalia os resultados das operações de conjunto.

Resultados de operações de conjunto

Os resultados das instruções de consulta servem como entrada, e os campos dos resultados da operação de conjunto atuam como variáveis para avaliar se um alerta deve ser acionado. Para mais informações sobre operações de conjunto, consulte Correlacionar múltiplos resultados de análise de consulta. A tabela a seguir descreve os resultados das operações de conjunto.

Nota

Operações de conjunto, como CROSS JOIN e LEFT JOIN, são executadas nos resultados de consulta e análise.

  • Se os resultados de consulta e análise não contiverem campos duplicados, referencie campos em uma expressão de avaliação sem adicionar prefixos. Os prefixos incluem $0, $1 e $2. Exemplo: name == 'sls'.

  • Caso os resultados de consulta e análise contenham campos duplicados, referencie os campos em uma expressão de avaliação adicionando prefixos a eles. Os prefixos incluem $0, $1 e $2. Exemplo: $0.name == 'sls' || $1.name == 'ecs'.

Categoria

Subcategoria

Descrição

Log

Instrução de consulta que não contém SELECT

Apenas uma instrução de pesquisa é usada para consultar logs.

Ao especificar uma expressão de avaliação para uma condição de gatilho, referencie os campos contidos nos resultados da consulta.

Instrução de consulta que contém SELECT * FROM log

Ao especificar uma expressão de avaliação para uma condição de gatilho, referencie os campos para os quais Enable Analytics está ativado.

Instrução de consulta que contém SELECT * FROM (SELECT...)

Ao especificar uma expressão de avaliação para uma condição de gatilho, referencie os campos contidos na subconsulta SELECT especificada.

Metric

Instrução de consulta que contém SELECT promql(...)

As funções promql_query(string) e promql_query_range(string, string) sempre podem retornar os seguintes campos: metric, labels, time e value. O Simple Log Service expande o campo labels no formato map.

Ao especificar uma expressão de avaliação para uma condição de gatilho, referencie os seguintes campos: metric, labels, time e value. Também é possível referenciar os subcampos do campo labels.

Instrução de consulta que contém SELECT a, b FROM (SELECT promql(...))

Ao especificar uma expressão de avaliação para uma condição de gatilho, referencie os campos para os quais Enable Analytics está ativado.

Instrução de consulta que contém SELECT * FROM log

Ao especificar uma expressão de avaliação para uma condição de gatilho, referencie os campos para os quais Enable Analytics está ativado.

Dados de resource

Nenhuma

O valor de um campo em dados de resource pode ser do tipo string, número de ponto flutuante ou numérico. O tipo JSON não é compatível.

Ao especificar uma expressão de avaliação para uma condição de gatilho, referencie o ID de um campo nos dados de resource.

Configure uma condição de gatilho

A expressão de avaliação analisa os resultados das operações de conjunto. Se ela retornar true, o sistema acionará um alerta. Os seguintes tipos de condição de gatilho são compatíveis:

  • Data is returned: Verifica o número de linhas no resultado da operação de conjunto. A condição é atendida se pelo menos uma linha for retornada.

    image

  • The query result contains: Verifica o número de linhas no resultado da operação de conjunto. Os operadores compatíveis incluem maior que, menor que e igual a. A condição é atendida se o número de linhas satisfizer a condição especificada. Por exemplo, se o conjunto de resultados contiver 4 linhas e a condição de gatilho for The query result contains > 10, a condição não será atendida e nenhum alerta será gerado.

    image

  • Data matches the expression: Verifica o conteúdo das linhas no resultado da operação de conjunto. A condição é atendida se o conteúdo de pelo menos uma linha corresponder à expressão de avaliação. Por exemplo, se o conjunto de resultados contiver uma linha (pv=900) e a condição de gatilho for Data matches the expression, pv > 1000, a condição não será atendida e nenhum alerta será gerado.

    image

  • The query result contains and matches: Verifica tanto o número quanto o conteúdo das linhas no resultado da operação de conjunto. Um alerta é acionado apenas quando um número específico de linhas corresponde à expressão de avaliação. Por exemplo, se o conjunto de resultados tiver quatro linhas (pv=900, pv=1100, pv=1200, pv=1001) e a condição de gatilho for The query result contains and matches > 3, pv > 1000, a condição será atendida e um alerta será gerado.

    image

Exemplos

Exemplo 1

Se a taxa de sucesso das solicitações for inferior a 90% e o tempo médio de resposta das solicitações for superior a 60 segundos dentro de um período de 15 minutos, um alerta será acionado. Detalhes da configuração:

Query Statistics:

  • s0: Calcule a taxa de sucesso das solicitações, indicada por success_ratio. Instrução de consulta: * | select round(sum(if(status < 300, 1, 0)) * 100.0 / count(1) , 2) as success_ratio.

  • s1: Calcule o tempo médio de resposta das solicitações por minuto. Instrução de consulta: * | select date_format(date_trunc('minute',__time__), '%m-%d %H:%i') as t,avg(request_time) as "Average response time(s)" group by t order by t asc limit 2000

Trigger Condition: A expressão de avaliação é configurada como: $0.success_ratio < 90 && $1.[Average response time(s)] > 60

image

Exemplo 2

Se o número de vezes que o código de status HTTP 500 é retornado exceder 10 dentro de um período de 15 minutos, um alerta será acionado. Detalhes da configuração:

Query Statistics: Conte as ocorrências de cada código de status. Instrução de consulta: * | select status, COUNT(*) as total group by status

Trigger Condition: A expressão de avaliação é configurada como: status == 500 && total > 10

image