Políticas de alertas com uma condição baseada na linguagem de consulta do Monitoring (MQL, na sigla em inglês) permitem configurar o ambiente de alertas para muitos casos de uso possíveis. Determinadas configurações estão disponíveis somente por meio do uso de consultas MQL.
Este documento descreve vários casos de uso e exemplos de consulta para implantar políticas de alertas com uma condição baseada em MQL em um ambiente de produção.
Alerta sobre limites dinâmicos
É possível usar uma consulta MQL para configurar uma política de alertas que aciona alertas com base em um limite que varia com o tempo, como como dias da semana. Esta configuração não é compatível com alertas condições de política sem consultas MQL.
Por exemplo: você tem uma consulta MQL que envia um alerta se o uso da CPU de uma instância do Compute Engine exceder 95%:
fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization | align | every 30s | condition utilization > 95'%'
No entanto, você quer definir um limite de utilização mais baixo, como 85%, fins de semana, porque sua equipe de suporte terá tempos de resposta mais longos. Nesse caso, você pode configurar sua consulta com uma coluna de valor que contenha o limite de alerta:
fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization | align | every 30s | value add [day_of_week: end().timestamp_to_string('%w').string_to_int64] | value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6] | value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')] | condition utilization > scale(max_allowed_utilization)
As operações value fazem o seguinte:
value add [day_of_week: end().timestamp_to_string('%w').string_to_int64]
adiciona uma coluna de valor cujo valor é um número entre 0 e 6, em que0
é domingo e6
é sábado.value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6]
substitui o número do dia por um booleano que indica se o ponto de dados foi em um final de semana ou dia de semana.value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')]
substitui o booleano por um limite que varia de acordo com o valor deis_weekend
.
A condição condition utilization > scale(max_allowed_utilization)
compara as duas colunas de valor.
Por exemplo, uma política de alertas com uma condição baseada no MQL que configura níveis de gravidade de incidentes com base em critérios dinâmicos, consulte Criar níveis dinâmicos de gravidade usando o MQL.
Alerta sobre limites com base na taxa de mudança
É possível configurar consultas MQL da política de alertas para avaliar limites
com base na taxa de mudança de uma métrica. Por exemplo, você quer avaliar
a taxa de 5xx
erros por instância de resource.method
em seu
Solicitações de API, em que a taxa é equivalente às solicitações por segundo. Se a taxa
for maior que 5 respostas de erro por segundo, o Cloud Monitoring
envia um alerta:
fetch consumed_api | metric 'serviceruntime.googleapis.com/api/request_count' | filter (metric.response_code_class == '5xx') | align rate(10m) | every 30s | group_by [resource.method], [value_request_count_mean: mean(value.request_count)] | condition val() > 0.05'1/s'
É possível criar políticas de alertas de taxa de mudança sem usar o MQL:
- Para conferir um exemplo que usa o console do Google Cloud, consulte Monitore uma taxa de mudança.
- Para conferir um exemplo que usa a API Cloud Monitoring, consulte Política de taxa de alteração.
Alerta sobre limites com base na proporção
Sua política de alertas pode usar uma consulta MQL para avaliar
proporções derivadas juntando duas métricas e, em seguida, dividindo as colunas de valor.
Por exemplo, você quer consultar a proporção de read
bytes em comparação com write
bytes de cada uma das instâncias do Compute Engine. Se a proporção for maior
que 3/5
ou 60%, o Cloud Monitoring enviará um alerta:
{ fetch gce_instance :: compute.googleapis.com/instance/disk/read_bytes_count; fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count } | every 30s | join | value val(0) / val(1) | condition val() > 0.6
Também é possível consultar a proporção de valores agregados. Por exemplo, você quer
computar o tempo médio de uso da CPU por núcleo no Compute Engine
instâncias. Se a proporção for maior que 3/5
ou 60%,
O Cloud Monitoring envia um alerta. Neste exemplo, você também deve incluir
Uma função cast_units
para alinhar as unidades de medida.
{ fetch gce_instance :: compute.googleapis.com/instance/cpu/usage_time | group_by [], .sum; fetch gce_instance :: compute.googleapis.com/instance/cpu/reserved_cores | group_by [], .sum | cast_units('s{CPU}') } | every 30s | ratio | condition val() > 0.6
É possível criar políticas de alertas com base em proporção sem usar o MQL:
- Para conferir um exemplo que usa o console do Google Cloud, consulte Calcular proporções.
- Para conferir um exemplo que usa a API Cloud Monitoring, consulte Proporção da métrica.