Todos os produtos
Search
Central de documentação

Cloud Monitor:Expressões de regras de alerta

Última atualização: Jun 26, 2026

As expressões de regras de alerta permitem configurar condições complexas durante a criação de uma regra. Uma expressão consiste em elementos básicos, como nomes de métricas, operadores e funções, além de suportar comparação com dados históricos.

Elementos

O Cloud Monitor avalia as expressões das regras de alerta com base nos dados agregados das métricas ou em instâncias individuais. Se os dados de monitoramento atenderem à expressão, o sistema acionará um alerta. A expressão consiste em nomes de métricas, membros de métricas, operadores, funções e dados de monitoramento. Exemplo: @cpu_total[60].$instanceId != 'i-2ze3jvsy7620giru****' && @cpu_total[60].$Average > 60.

  • Nomes de métricas

    Para obter mais informações sobre as métricas dos diferentes serviços em nuvem, consulte Apêndice 1: Métricas para produtos Alibaba Cloud.

    Uma expressão de métrica utiliza o formato @Nome da métrica[Período de agregação]. Por exemplo, para monitorar uma instância do Elastic Compute Service (ECS) com base na métrica CPUUtilization, use @CPUUtilization[60].

    Nota
    • O período de agregação das métricas do ECS aparece na coluna Min Periods da tabela na Página de lista de métricas do ECS. Para visualizar o período de agregação de outro serviço em nuvem, selecione o serviço na lista suspensa.

    • O nome da métrica deve obedecer à expressão regular [a-zA-Z][_a-zA-Z0-9]*. Caso contrário, utilize o formato @(Nome da métrica)[Período de agregação], por exemplo, @('vm.DiskIORead')[60].

    Combine os nomes das métricas com os membros das métricas para definir o escopo dos dados de monitoramento.

  • Membros de métricas

    Os membros de métricas definem o escopo dos dados de monitoramento para uma determinada métrica. Um membro de métrica deve começar com o cifrão ($). Utilize o formato @Nome da métrica[Período de agregação].$Membro da métrica. Por exemplo, os métodos estatísticos para a métrica CPUUtilization do ECS são Average, Minimum e Maximum. A expressão para o valor médio é @CPUUtilization[60].$Average. As dimensões da métrica CPUUtilization do ECS são userId e instanceId. A expressão para uma instância específica é @CPUUtilization[60].$instanceId.

    Nota

    Os membros das métricas do ECS aparecem nas colunas Dimensions e Statistics da tabela na Página de lista de métricas do ECS. Para visualizar os membros de métricas de outro serviço em nuvem, selecione o serviço na lista suspensa.

  • Operadores

    Os operadores avaliam se os dados de monitoramento atendem à condição de alerta.

    • Operadores básicos

      Categoria

      Operador e descrição

      Operadores matemáticos

      • +: adição

      • -: subtração

      • *: multiplicação

      • /: divisão

      • %: módulo

      • **: exponenciação

      Operadores de comparação

      • ==: igual a

      • ! =: diferente de

      • >: maior que

      • >=: maior ou igual a

      • <: menor que

      • <=: menor ou igual a

      Operadores lógicos

      • && ou and: E lógico

      • || ou or: OU lógico

      • ! ou not: NEGAÇÃO lógica

      Exemplo: $Average > 50 && $instanceId != 'i-not-exist'.

      Nota

      Se os valores em ambos os lados de um operador matemático ou de comparação não forem do mesmo tipo, o sistema converterá a string em número. Por exemplo: '123' + 321 == 123 + '321' == 444.

    • Operadores de string

      Operador de string

      Descrição

      Exemplo

      matches

      Corresponde a uma expressão regular.

      Use o operador lógico NOT com matches para negar uma correspondência de expressão regular.

      !("hello" matches "^fo.+")

      Nota

      O operador ! tem prioridade maior que o operador matches. Portanto, coloque a expressão regular entre parênteses ().

      contains

      Contém uma string.

      'abcdef' contains 'cde'

      startsWith

      Verifica se uma string começa com um prefixo especificado.

      'abcdef' startsWith 'abc'

      endsWith

      Verifica se uma string termina com um sufixo especificado.

      'abcdef' endsWith 'def'

    • Operadores de pertinência

      Operador de pertinência

      Descrição

      Exemplo

      in

      Contém

      • userld in [120886317861****, 425876]

        O valor de userld é 120886317861** ou 20654616023382**.

      • "foo" in {'foo':1, 'bar':2}

        O valor de foo é foo ou bar.

      not in

      Não contém

      • userld not in [120886317861****, 425876]

        O valor de userld não é 120886317861** nem 20654616023382**.

      • "foo" not in {'foo1':1, 'bar':2}

        O valor de foo não é foo1 nem bar.

    • Operadores ternários

      ?:: Funciona da mesma forma que o operador ternário em C e Java. Exemplo: @CPUUtilization[60].$Average > 30? "ok": "lower".

  • Operações de dados

    • Tipos de dados

      Tipo de dado

      Descrição

      Exemplo

      string

      Uma string entre aspas simples ou duplas.

      "hello", 'hello'

      number

      Um número inteiro ou de ponto flutuante.

      Nota

      Para números inteiros, use sublinhados (_) como separadores para melhorar a legibilidade.

      • 103, 2,5, .5, 2e+6

      • 1_000_000

      array

      Um array.

      [1, 2, 3]

      map ou dict

      Um dicionário.

      {"foo":"bar"}

      bool

      Um valor booleano.

      true ou false

      nil

      Um valor vazio.

      nil

    • Funções integradas

      Função integrada

      Descrição

      `len(array

      map

      string)`

      Retorna o comprimento de um array, mapa ou string.

      now()

      Retorna um carimbo de data/hora UTC em milissegundos.

      abs(number)

      Retorna o valor absoluto (um número de ponto flutuante).

      rand()

      Retorna um número de ponto flutuante entre [0, 1).

      rand(N)

      Retorna um número de ponto flutuante entre [0, N).

      toLower(string)

      Converte uma string para minúsculas.

      toUpper(string)

      Converte uma string para maiúsculas.

    • Comparação

      Nota
      • Exemplo de métrica: @cpu_total[60].

      • Um método de agregação é uma string. Exemplo: '$Average'.

      • O resultado da comparação é um valor booleano. Se o valor da métrica no período atual for maior que o valor da métrica no período anterior, o resultado será true. Se o valor da métrica no período atual for menor que o valor da métrica no período anterior, o resultado será false.

      Função

      Descrição

      CompareLastPeriod(metric, aggregation method, comparison result)

      Retorna a variação percentual em relação ao período anterior. Exemplo: CompareLastPeriod(@cpu_total[60], '$Average', true).

      Por exemplo, se o valor médio de cpu_total no período atual for 20% e no período anterior for 15%, o valor retornado dependerá do resultado da comparação.

      • Se o resultado da comparação for true, esta função retorna (20 - 15) × 100/20.

      • Se o resultado da comparação for false, esta função retorna (15 - 20) × 100/20.

      CompareLastHour(metric, aggregation method, comparison result)

      Retorna a variação percentual em relação à hora anterior.

      CompareLastHour(@cpu_total[60], '$Average', true) > 10: Se o valor médio de cpu_total aumentar 10% em relação à hora anterior, o sistema acionará um alerta.

      CompareLastWeek(metric, aggregation method, comparison result)

      Obtém os dados comparados ao dia anterior.

      CompareYesterday(@cpu_total[60], '$Average', true) > 10: Se o valor médio de cpu_total aumentar 10% em relação à semana anterior, o sistema acionará um alerta.

      CompareLastWeek(metric, aggregation method, comparison result)

      Obtém os dados comparados à semana anterior.

      CompareLastWeek(@cpu_total[60], '$Average', true) > 10: Se o valor médio de cpu_total aumentar 10% em relação à semana anterior, o sistema acionará um alerta.

      ComparePast(metric, aggregation method, comparison result, seconds)

      Retorna a variação percentual em relação ao número especificado de seconds anteriores ao horário atual.

      As quatro funções anteriores são formas simplificadas desta função.

      • CompareLastHour(@cpu_total[60], '$Average', true) equivale a ComparePast(@cpu_total[60], '$Average', true, 3600).

      • CompareYesterday(@cpu_total[60], '$Average', true) equivale a ComparePast(@cpu_total[60], '$Average', true, 246060).

      • CompareLastWeek(@cpu_total[60], '$Average', true) equivale a ComparePast(@cpu_total[60], '$Average', true, 72460*60).

    • Funções históricas

      Função

      Descrição

      LastPeriod(metric)

      Retorna os dados do período anterior. Exemplo: LastPeriod(@cpu_total[60]).$Average > 75. Se o valor médio de cpu_total no período anterior exceder 75%, o sistema acionará um alerta.

      LastHour(metric)

      Retorna os dados da hora anterior. Exemplo: LastHour(@cpu_total[60]).$Average > 75. Se o valor médio de cpu_total na hora anterior exceder 75%, o sistema acionará um alerta.

      Yesterday(metric)

      Retorna os dados do dia anterior. Exemplo: Yesterday(@cpu_total[60]).$Average > 75. Se o valor médio de cpu_total no dia anterior exceder 75%, o sistema acionará um alerta.

      LastWeek(metric)

      Retorna os dados da semana anterior. Exemplo: LastWeek(@cpu_total[60]).$Average > 75. Se o valor médio de cpu_total na semana anterior exceder 75%, o sistema acionará um alerta.

      Past(metric, seconds)

      Retorna os dados do número especificado de segundos anteriores ao horário atual. O número deve ser um múltiplo integral do período de agregação da métrica. As funções anteriores são formas abreviadas desta função. Por exemplo, Past(@cpu_total[60], 3600) > 75 equivale a LastHour(@cpu_total[60]).$Average > 75.

Cenários

A tabela a seguir lista cenários comuns para expressões de regras de alerta.

Cenário

Expressão da regra de alerta

Descrição

Defina um limiar dedicado para uma instância específica e um limiar diferente para outras instâncias

@cpu_total[60].$Average > (@cpu_total[60].$instanceId == 'i-io8kfvcpp7x5****'? 80: 50)

Para a instância i-io8kfvcpp7x5****, se o valor médio de cpu_total exceder 80, o sistema acionará um alerta. Para outras instâncias, se o valor médio de cpu_total exceder 50, o sistema acionará um alerta.

Excluir uma instância específica do alerta

@cpu_total[60].$instanceId != 'i-io8kfvcpp7x5****' && @cpu_total[60].$Average > 50

Para a instância i-io8kfvcpp7x5****, o sistema retorna false e não aciona nenhum alerta. Para outras instâncias, se o valor médio de cpu_total exceder 50, o sistema acionará um alerta.

Configure uma condição de alerta com base em várias métricas

@cpu_total[60].$Average > 50 && @memory_usage[60].$Average > 80

Se o valor médio de cpu_total de uma instância exceder 50% e o valor médio de memory_usage da mesma instância exceder 80%, o sistema acionará um alerta.

Visualize a latência de relatório da métrica

now() - @heartbeat[60].$reportTime > 60_000

Se o tempo limite do heartbeat exceder um minuto, o sistema acionará um alerta.

Nota

O parâmetro reportTime indica quando uma métrica foi relatada. É um parâmetro integrado de cada métrica. A função now() retorna um carimbo de data/hora UTC em milissegundos.