Esta página foi traduzida pela API Cloud Translation.
Switch to English

Políticas de alertas com MQL

É possível criar políticas de alertas de Monitoramento com condições incluam uma consulta MQL. As consultas de MQL para condições de alerta são como outras consultas de MQL, mas também incluem uma operação de alerta de MQL.

Nesta página, apresentamos as operações de alerta do MQL e descrevemos como criar uma política de alertas que as use. Para ver informações gerais sobre as políticas de alertas do Monitoring, consulte Comportamento de alertas.

Operações de alertas MQL

É possível criar políticas de alertas de limite e ausência com o MQL.

Crie uma política de alertas baseada em MQL usando uma das seguintes operações de alerta de MQL na consulta:

  • Operação condition para alertas de limite.
  • Operação absent_for para alertas de ausência.

Sua consulta precisa terminar com uma dessas operações. Para informações detalhadas, consulte a seção Alertas na referência do MQL.

A consulta não pode incluir uma especificação de intervalo de tempo explícita, ou seja, uma operação within.

Ao usar o MQL para criar uma política de alertas, você cria uma consulta MQL com fetch, filter, group_by e assim por diante para identificar a série temporal de destino. Essa parte da consulta é a mesma usada para recuperar dados de séries temporais de um gráfico. Por exemplo, a consulta a seguir busca a utilização da CPU para todas as instâncias de VM do Compute Engine em qualquer região central dos EUA:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'

Essa consulta gera uma tabela de saída. Para criar um alerta, canalize a tabela de saída para uma operação de alerta. A operação de alerta calcula valores booleanos para os valores de dados na tabela de saída gerada pela consulta que precede a operação de alerta.

A operação de alerta especifica uma expressão para avaliar os dados na tabela de entrada. Para uma condição de limite, a expressão testa cada ponto em relação a um limite como "o valor é menor que 0,5?"

O recurso de alertas do Monitoring usa os resultados da operação de alerta para determinar se e quando a política de alertas é acionada. A Configuração de alertas descreve como a decisão é tomada.

Alertas de limite

Para alertas de limite, use a operação condition. A operação de condição usa uma expressão que avalia um valor em relação a um limite, como "o valor é maior que 15%", e retorna um booleano.

A operação condition requer que a tabela de entrada seja alinhada com uma janela de alinhamento explícita. Você pode fazer isso especificando uma janela de alinhamento para uma operação align, por exemplo, align delta(5m) ou usando uma operação window, como mostrado no exemplo a seguir:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'
| window 5m
| condition val() > .15 '10^2.%'

A condição testa cada ponto de dados na tabela de entrada alinhada para determinar se o valor de utilização excede o valor limite de 15%. A tabela resultante do operador condition tem duas colunas de valor, uma coluna booleana que grava o resultado da avaliação de limite e uma segunda contendo uma cópia da coluna de valor utilization da tabela de entrada.

O valor de utilização da CPU é armazenado como utilização fracionária; os valores variam de 0,0 a 1,0. O descritor de métrica especifica a unidade do valor como 10^2.%, que o gráfico exibe como porcentagem. As unidades do limite precisam ser compatíveis, por isso, expressamos o limite como .15 '10^2.%.

As unidades para tipos de métricas são listadas na tabela relevante de tipos de métricas; para o tipo de métrica compute.googleapis.com/instance/cpu/utilization, consulte a tabela compute.

Para mais informações sobre unidades no MQL, consulte Unidades de medida.

Alertas de ausência

Para alertas de ausência, use a operação absent_for, que leva o período de tempo durante o qual os dados ficam ausentes. Por exemplo, os seguintes testes verificam se os dados ficaram ausentes das zonas centrais dos EUA por oito horas:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'
| absent_for 8h

A operação absent_for leva apenas um argumento de duração que indica por quanto tempo os dados precisam ficar ausentes para satisfazer a condição.

Os dados são considerados ausentes se os dados apareceram no último período de 24 horas, mas não na duração, neste exemplo, as oito horas mais recentes.

Uma consulta absent_for cria uma tabela de saída com valores alinhados usando o alinhamento padrão ou uma operação every após a operação absent_for.

A tabela de saída tem duas colunas.

  • A primeira é a coluna active, que registra os resultados booleanos da ausência de dados. Um valor true significa que houve um ponto de entrada nas últimas 24 horas e nenhum no período de duração.

  • A segunda coluna é a signal. Se a tabela de entrada tiver colunas de valor, a coluna signal conterá o valor da primeira coluna de valor do ponto de entrada mais recente. Se a tabela de entrada não tiver colunas de valor, a coluna signal conterá o número de minutos desde o último ponto de entrada registrado. É possível forçar esse caso facilmente, conforme mostrado no exemplo a seguir:

    fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
    | filter zone =~ 'us-central.*'
    | value []
    | absent_for 8h
    

    No exemplo anterior, a operação value [] remove as colunas de valor da tabela de entrada, de modo que a coluna signal na tabela criada pela operação absent_for contém o número de minutos desde o último ponto de entrada gravado.

Configuração de alertas

Além da consulta MQL, uma condição de política de alertas inclui dois outros valores:

  • O número de séries temporais de entrada que precisam atender à condição. O valor pode ser qualquer um destes:
    • Uma única série temporal.
    • Um número específico de séries temporais.
    • Uma porcentagem de séries temporais.
    • Todas as séries temporais.
  • Duração do estado do alerta, ou seja, por quanto tempo a condição de alerta precisa ser avaliada continuamente como true.

Quando a consulta de alertas é avaliada continuamente como true para a duração especificada de uma série temporal específica, essa série temporal é considerada ativa. Quando o número especificado de séries temporais está ativo, a política de alertas é acionada e um alerta é gerado para cada série temporal ativa. Para mais informações sobre como as políticas de alertas são avaliadas, consulte Comportamento dos alertas.

Se você usar o MQL em uma condição, essa condição precisará ser a única condição na política. Não é possível usar várias condições em políticas de alertas baseadas em MQL.

Como criar políticas de alertas de MQL (console)

Para criar uma política de alertas baseada em MQL no Console do Google Cloud, siga as etapas comuns para criar a política, descritas em Como gerenciar políticas de alertas. Ao criar a condição da política de alertas, use o Editor de consultas em vez do seletor de métricas com base em formulários.

O editor de condições para políticas de alertas baseadas em MQL.

Complete a condição da seguinte maneira:

  1. Insira um valor no campo Condição sem título para nomear a condição. Quando salva, a condição recebe um identificador numérico. Esse nome de exibição opcional pode fornecer uma descrição mais significativa.

  2. Para iniciar sua condição de alerta, insira a consulta que seleciona os dados que você quer monitorar no Editor de consultas. A consulta a seguir busca as séries temporais e as alinha em uma janela de cinco minutos:

    fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
    | window 5m
    

    Se você clicar em Executar consulta neste momento, verá um gráfico. Para um projeto, esta consulta produziu o resultado seguinte:

    Gráfico de uma condição de alerta antes de especificar o alerta.

  3. Adicione uma cláusula de alerta à consulta usando uma das seguintes operações:

    • O operador condition, para um alerta de limite.
    • O operador absent_for, para um alerta de ausência.

    Para mais informações sobre essas operações de alertas, consulte Alerta na referência do MQL.

    O exemplo a seguir usa a operação condition para especificar um limite:

    fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
    | window 5m
    | condition val() > .15
    

    Se você clicar em Executar consulta neste ponto, o gráfico adicionará uma linha de limite para a condição, conforme mostrado na captura de tela a seguir:

    Gráfico de uma condição de alerta após a especificação do alerta.

  4. Se você ainda não executou a consulta, clique em Executar consulta.

  5. No painel Configuração, especifique quando a política de alertas deverá ser acionada. Há dois valores a serem especificados:

    • Acionadores de condição permitem especificar quantas séries temporais retornadas pela consulta precisam atender à operação de alerta antes do acionamento da política de alertas. Você pode especificar os seguintes critérios:

      • Uma única série temporal.
      • Um número específico de séries temporais.
      • Uma porcentagem da série temporal.
      • Todas as séries temporais.
    • For permite especificar por quanto tempo a condição precisa ser atendida antes que a política de alertas seja acionada. Isso não é o mesmo que a janela de alinhamento usada na consulta de MQL. Para mais informações sobre o relacionamento entre esses valores, consulte O período de alinhamento e a duração.

  6. Clique em Adicionar para salvar a condição. Você verá uma caixa de diálogo que notifica que a condição de alerta é convertida em uma forma rígida quando salva. Clique em Salvar para salvar a consulta ou em Cancelar para continuar a edição.

  7. Continue com a configuração.

Como criar políticas de alertas (API) MQL

Se você estiver usando a API, crie uma condição do tipo MonitoringQueryLanguageCondition ao configurar a política. Em seguida, transmita a política para alertPolicies.create como de costume. Para saber mais, consulte Condições em políticas de alerta.