É 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 valortrue
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 colunasignal
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 colunasignal
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 colunasignal
na tabela criada pela operaçãoabsent_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.
Complete a condição da seguinte maneira:
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.
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:
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:
- O operador
Se você ainda não executou a consulta, clique em Executar consulta.
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.
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.
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.