Solucionar problemas em avaliações de regras - Amazon Managed Service for Prometheus

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solucionar problemas em avaliações de regras

Este guia fornece procedimentos step-by-step de solução de problemas comuns com avaliações de regras no Amazon Managed Service for Prometheus (AMP). Siga estes procedimentos para diagnosticar e resolver problemas com as regras de alerta e gravação.

Validar o status de disparo do alerta

Ao solucionar problemas de avaliação de regras, primeiro verifique se o alerta foi acionado consultando a série temporal sintética ALERTS. As séries temporais ALERTS incluem os seguintes rótulos:

  • alertname: o nome do alerta.

  • alertstate pending ou firing.

    • pending: o alerta está aguardando a duração especificada na cláusula for.

    • firing: o alerta atendeu às condições da duração especificada. Rótulos adicionais são definidos em sua regra de alerta.

nota

Quando um alerta tem o rótulo firing ou pending, o valor da amostra é 1. Quando o alerta está inativo, nenhuma amostra é produzida.

Solucionar falta de notificações de alertas

Se os alertas estiverem sendo disparados, mas as notificações não chegarem, verifique as seguintes configurações do Alertmanager:

  1. Verifique a configuração do Alertmanager: verifique se as rotas, os receptores e as configurações estão configuradas corretamente. Revise as configurações de bloqueio de rotas, incluindo tempos de espera, intervalos de tempo e rótulos necessários, que podem afetar o disparo de alertas. Compare as regras de alerta com as rotas e receptores correspondentes para confirmar a correspondência adequada. Para rotas com time_interval, verifique se os carimbos de data/hora estão dentro dos intervalos especificados.

  2. Verifique as permissões do receptor de alertas: ao usar um tópico do Amazon SNS, verifique se o AMP tem as permissões necessárias para publicar notificações. Para obter mais informações, consulte Conceder ao Amazon Managed Service for Prometheus permissão para enviar mensagens ao seu tópico do Amazon SNS.

  3. Valide a compatibilidade da carga útil do receptor: confirme se seu receptor de alerta aceita o formato de carga útil do Alertmanager. Para ver os requisitos do Amazon SNS, consulte Noções básicas das regras de validação de mensagens do Amazon SNS.

  4. Analise os logs do Alertmanager: o AMP oferece logs fornecidos do Alertmanager para ajudar a depurar problemas de notificação. Para obter mais informações, consulte Monitore eventos do Amazon Managed Service para Prometheus com registros CloudWatch .

Para obter mais informações sobre o Alertmanager, consulte Como gerenciar e encaminhar alertas no Amazon Managed Service for Prometheus com o gerenciador de alertas.

Verificar o status de integridade da regra

Regras malformadas podem causar falhas na avaliação. Use os métodos a seguir para identificar por que uma regra não foi avaliada:

Use a ListRules API

A API ListRules fornece informações sobre a integridade das regras. Verifique os campos lastError e health para diagnosticar problemas.

Exemplo de resposta:

{ "status": "success", "data": { "groups": [ { "name": "my_rule_group", "file": "my_namespace", "rules": [ { "state": "firing", "name": "broken_alerting_rule", "query": "...", "duration": 0, "keepFiringFor": 0, "labels": {}, "annotations": {}, "alerts": [], "health": "err", "lastError": "vector contains metrics with the same labelset after applying alert labels", "type": "alerting", "lastEvaluation": "1970-01-01T00:00:00.00000000Z", "evaluationTime": 0.08 } ] } ] } }

Use logs fornecidos

A ListRules API exibe apenas as informações mais recentes. Para obter um histórico mais detalhado, habilite os logs fornecidos em seu espaço de trabalho para acessar:

  • Carimbos de data/hora de falhas de avaliação

  • Mensagens de erro detalhadas

  • Dados históricos de avaliação

Exemplo de mensagem de log fornecido:

{ "workspaceId": "ws-a2c55905-e0b4-4065-a310-d83ce597a391", "message": { "log": "Evaluating rule failed, name=broken_alerting_rule, group=my_rule_group, namespace=my_namespace, err=vector contains metrics with the same labelset after applying alert labels", "level": "ERROR", "name": "broken_alerting_rule", "group": "my_rule_group", "namespace": "my_namespace" }, "component": "ruler" }

Para obter mais exemplos de logs do Ruler ou do Alertmanager, consulte Solução de problemas do Ruler e Como gerenciar e encaminhar alertas no Amazon Managed Service for Prometheus com o gerenciador de alertas.

Usar deslocamento em consultas para lidar com atrasos na ingestão

Por padrão, as expressões são avaliadas sem deslocamento (consulta instantânea), usando valores no momento da avaliação. Se a ingestão de métricas for atrasada, as regras de gravação podem não representar os mesmos valores de quando você avalia manualmente a expressão depois que todas as métricas são ingeridas.

dica

Usar o modificador de deslocamento pode reduzir os problemas causados por atrasos na ingestão. Para obter mais informações, consulte Offset modifier na documentação do Prometheus.

Se a sua regra for avaliada às 12:00, mas a amostra mais recente da métrica for das 11:45 devido ao atraso na ingestão, a regra não encontrará amostras no carimbo de data/hora das 12:00. Para mitigar isso, adicione um deslocamento, como: my_metric_name offset 15m .

Quando as métricas são provenientes de fontes diferentes, como dois servidores, elas podem ser ingeridas em momentos diferentes. Para mitigar isso, forme uma expressão, como: metric_from_server_A / metric_from_server_B .

Se a regra for avaliada entre os tempos de ingestão do servidor A e do servidor B, você obterá resultados inesperados. Usar um deslocamento pode ajudar a alinhar os tempos de avaliação.

Problemas e soluções comuns de

Lacunas nos dados da regra de gravação

Se você notar lacunas nos dados da regra de gravação em comparação com a avaliação manual (ao executar diretamente a expressão PromQL original da regra de gravação pela API ou IU de consulta), isso pode ser devido a um dos seguintes motivos:

  1. Tempos de avaliação longos: um grupo de regras não pode ter várias avaliações simultâneas. Se o tempo de avaliação exceder o intervalo configurado, as avaliações subsequentes poderão ser perdidas. Várias avaliações perdidas consecutivas excedendo o intervalo configurado podem fazer com que a regra de gravação fique obsoleta. Para obter mais informações, consulte Staleness na documentação do Prometheus. Você pode monitorar a duração da avaliação usando a CloudWatch métrica RuleGroupLastEvaluationDuration para identificar grupos de regras que estão demorando muito para serem avaliados.

  2. Monitoramento de avaliações perdidas — O AMP fornece a RuleGroupIterationsMissed CloudWatch métrica para rastrear quando as avaliações são ignoradas. A ListRules API exibe a hora da avaliação e a hora da última avaliação de cada regra/grupo, o que pode ajudar a identificar padrões de avaliações perdidas. Para obter mais informações, consulte ListRules.

Recomendação: divida as regras em grupos separados

Para reduzir a duração da avaliação, divida as regras em grupos de regras separados. As regras em um grupo são executadas sequencialmente, enquanto os grupos de regras podem ser executados paralelamente. Mantenha regras relacionadas que dependam umas das outras no mesmo grupo. Geralmente, grupos de regras menores garantem avaliações mais consistentes e menos lacunas.

Práticas recomendadas para avaliações de regras

  1. Otimize o tamanho do grupo de regras: mantenha os grupos de regras pequenos para garantir avaliações consistentes. Agrupe as regras relacionadas, mas evite grupos de regras grandes.

  2. Defina intervalos de avaliação adequados: equilíbrio entre alertas oportunos e carga do sistema. Analise os padrões de estabilidade de suas métricas monitoradas para entender as faixas normais de flutuação.

  3. Use modificadores de deslocamento para métricas atrasadas: adicione deslocamentos para compensar os atrasos na ingestão. Ajuste a duração do deslocamento com base nos padrões de ingestão observados.

  4. Monitore o desempenho da avaliação: acompanhe a métrica RuleGroupIterationsMissed. Analise os tempos de avaliação na ListRules API.

  5. Valide expressões de regras: certifique-se de que as expressões correspondam exatamente entre as definições de regras e as consultas manuais. Teste expressões com intervalos de tempo diferentes para entender o comportamento.

  6. Revise a integridade das regras regularmente: verifique se há erros nas avaliações das regras. Monitore os logs fornecidos em busca de problemas recorrentes.

Ao seguir essas etapas de solução de problemas e as práticas recomendadas, você pode identificar e resolver problemas comuns com avaliações de regras no Amazon Managed Service for Prometheus.