As 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. Algumas configurações estão disponíveis apenas com o uso de consultas MQL.
Neste documento, descrevemos vários casos de uso e exemplos de consultas 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 ao longo do tempo, como os dias da semana. Essa configuração não é compatível com as condições da política de alertas sem consultas MQL.
Por exemplo, você tem uma consulta MQL que envia um alerta se a utilização 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%, para fins de semana, para compensar os tempos de resposta mais longos da equipe de suporte. Nesse caso, é possível 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 ocorreu em um fim de semana ou dia da 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.
Para conferir um exemplo de política de alertas com uma condição baseada em MQL que configura níveis de gravidade de incidente com base em critérios dinâmicos, consulte Criar níveis de gravidade dinâmicos usando o MQL.
Alerta sobre limites com base na taxa de alteração
É 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 erros 5xx
por instância de resource.method
nas solicitações de API, em que a taxa é equivalente às solicitações por segundo. Se a taxa
for maior que cinco respostas de erro por segundo, o Cloud Monitoring
vai enviar 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 ver um exemplo que usa o console do Google Cloud, consulte Monitorar uma taxa de alteração.
- Para ver um exemplo que usa a API Cloud Monitoring, consulte Política de taxa de alteração.
Alerta sobre limites baseados em proporção
Sua política de alertas pode usar uma consulta MQL para avaliar
as proporções derivadas mesclando duas métricas e dividindo as colunas de valor.
Por exemplo, você quer consultar a proporção de read
bytes em comparação com write
bytes para cada uma das instâncias do Compute Engine. Se a proporção for maior
que 3/5
ou 60%, o Cloud Monitoring vai 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 calcular o tempo médio de uso da CPU por núcleo nas instâncias do Compute Engine. Se a proporção for maior que 3/5
ou 60%,
o Cloud Monitoring vai enviar um alerta:
{ 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 } | every 30s | ratio | condition val() > 0.6
É possível criar políticas de alertas com base em proporção sem usar o MQL:
- Para ver um exemplo que usa o console do Google Cloud, consulte Proporções de computação.
- Para um exemplo que usa a API Cloud Monitoring, consulte Proporção da métrica.