Solucione problemas de evaluación de reglas - Servicio administrado por Amazon para Prometheus

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solucione problemas de evaluación de reglas

Esta guía proporciona procedimientos step-by-step de solución de problemas comunes relacionados con las evaluaciones de reglas en Amazon Managed Service for Prometheus (AMP). Siga estos procedimientos para diagnosticar y resolver problemas con sus reglas de alerta y registro.

Valide el estado de activación de la alerta

Al solucionar problemas de evaluación de reglas, compruebe primero si la alerta se ha activado consultando la serie ALERTS temporal sintética. Las series ALERTS temporales incluyen las siguientes etiquetas:

  • alertname: el nombre de la alerta.

  • alertstate : pendiente o en proceso de activación.

    • pendiente: la alerta está esperando durante el tiempo especificado en la for cláusula.

    • activación: la alerta ha cumplido las condiciones durante el tiempo especificado. Las etiquetas adicionales se definen en la regla de alerta.

nota

Mientras una alerta esté activa o pendiente, el valor de la muestra es 1. Cuando la alerta está inactiva, no se produce ninguna muestra.

Resuelva las notificaciones de alerta faltantes

Si las alertas se están activando pero las notificaciones no llegan, compruebe la siguiente configuración de Alertmanager:

  1. Compruebe la configuración de Alertmanager: compruebe que las rutas, los receptores y los ajustes estén configurados correctamente. Revise la configuración del bloqueo de rutas, incluidos los tiempos de espera, los intervalos de tiempo y las etiquetas obligatorias, ya que pueden afectar a la activación de las alertas. Compare las reglas de alerta con sus rutas y receptores correspondientes para confirmar que coinciden correctamente. En el caso de las rutas contime_interval, compruebe que las marcas de tiempo estén dentro de los intervalos especificados.

  2. Comprueba los permisos del receptor de alertas: cuando utilices un tema de Amazon SNS, verifica que AMP tenga los permisos necesarios para publicar las notificaciones. Para obtener más información, consulte Concesión de permiso a Amazon Managed Service para Prometheus para enviar mensajes a un tema de Amazon SNS.

  3. Valide la compatibilidad de la carga útil del receptor: confirme que su receptor de alertas acepte el formato de carga útil de Alertmanager. Para conocer los requisitos de Amazon SNS, consulte. Comprensión de las reglas de validación de mensajes de Amazon SNS

  4. Revise los registros de Alertmanager: AMP proporciona registros vendidos de Alertmanager para ayudar a solucionar los problemas de notificación. Para obtener más información, consulte Supervisa los eventos de Prometheus con registros de Amazon Managed Service CloudWatch .

Para obtener más información sobre Alertmanager, consulte. Administración y reenvío de alertas en Amazon Managed Service para Prometheus con el administrador de alertas

Compruebe el estado de salud de la regla

Un formato incorrecto de las reglas puede provocar errores en la evaluación. Utilice los siguientes métodos para identificar por qué una regla no se evaluó:

Utilice la ListRules API

La ListRules API proporciona información sobre el estado de las reglas. Compruebe los lastError campos health y para diagnosticar problemas.

Ejemplo de respuesta:

{ "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 } ] } ] } }

Usa registros vendidos

La ListRules API solo muestra la información más reciente. Para obtener un historial más detallado, habilita los registros vendidos en tu espacio de trabajo para acceder a:

  • Marcas temporales de los errores de evaluación

  • Mensajes de error detallados

  • Datos de evaluación históricos

Ejemplo de mensaje de registro vendido:

{ "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 ver más ejemplos de registros de Ruler o Alertmanager, consulte y. Solución de problemas relacionados con las reglas Administración y reenvío de alertas en Amazon Managed Service para Prometheus con el administrador de alertas

Utilice la compensación en las consultas para gestionar los retrasos en la ingesta

De forma predeterminada, las expresiones se evalúan sin compensación (consulta instantánea) y se utilizan valores en el momento de la evaluación. Si la ingesta de métricas se retrasa, es posible que las reglas de registro no representen los mismos valores que cuando se evalúa manualmente la expresión después de ingerir todas las métricas.

sugerencia

El uso del modificador de compensación puede reducir los problemas causados por los retrasos en la ingesta. Para obtener más información, consulte el modificador de desplazamiento en la documentación de Prometheus.

Si la regla se evalúa a las 12:00, pero la última muestra de la métrica es a partir de las 11:45, debido a un retraso en la ingesta, la regla no encontrará ninguna muestra a las 12:00. Para mitigar este problema, añade un desfase, como:. my_metric_name offset 15m

Cuando las métricas se originan en fuentes diferentes, como dos servidores, es posible que se ingieran en momentos diferentes. Para mitigar esto, forma una expresión, como: metric_from_server_A / metric_from_server_B

Si la regla evalúa entre los tiempos de ingesta del servidor A y del servidor B, obtendrá resultados inesperados. El uso de una compensación puede ayudar a alinear los tiempos de evaluación.

Problemas y soluciones comunes de

Brechas en el registro de los datos de las reglas

Si observa lagunas en los datos de las reglas de registro en comparación con la evaluación manual (al ejecutar directamente la expresión ProMQL original de la regla de registro a través de la API o la interfaz de usuario de consultas), puede deberse a una de las siguientes causas:

  1. Tiempos de evaluación prolongados: un grupo de reglas no puede tener varias evaluaciones simultáneas. Si el tiempo de evaluación supera el intervalo configurado, es posible que no se realicen evaluaciones posteriores. La omisión de varias evaluaciones consecutivas que excedan el intervalo configurado puede provocar que la regla de registro quede obsoleta. Para obtener más información, consulte Staleness en la documentación de Prometheus. Puede monitorizar la duración de la evaluación mediante la CloudWatch métrica RuleGroupLastEvaluationDuration para identificar los grupos de reglas que están tardando demasiado en evaluarse.

  2. Supervisión de las evaluaciones omitidas: AMP proporciona la RuleGroupIterationsMissed CloudWatch métrica para hacer un seguimiento de los casos en que se omiten las evaluaciones. La ListRules API muestra la hora de la evaluación y la hora de la última evaluación de cada regla/grupo, lo que puede ayudar a identificar los patrones de evaluación omitida. Para obtener más información, consulte ListRules.

Recomendación: Divida las reglas en grupos separados

Para reducir la duración de las evaluaciones, divida las reglas en grupos de reglas independientes. Las reglas de un grupo se ejecutan secuencialmente, mientras que los grupos de reglas pueden ejecutarse en paralelo. Mantenga las reglas relacionadas que dependen unas de otras en el mismo grupo. Por lo general, los grupos de reglas más pequeños garantizan evaluaciones más consistentes y menos brechas.

Mejores prácticas para la evaluación de las reglas

  1. Optimice el tamaño de los grupos de reglas: mantenga los grupos de reglas pequeños para garantizar la coherencia de las evaluaciones. Agrupe las reglas relacionadas, pero evite los grupos de reglas grandes.

  2. Establezca intervalos de evaluación adecuados: equilibre entre las alertas puntuales y la carga del sistema. Revise los patrones de estabilidad de las métricas monitoreadas para comprender sus rangos de fluctuación normales.

  3. Utilice modificadores de compensación para las métricas retrasadas: añada compensaciones para compensar los retrasos en la ingesta. Ajusta la duración de la compensación en función de los patrones de ingesta observados.

  4. Supervise el rendimiento de la evaluación: realice un seguimiento de la RuleGroupIterationsMissed métrica. Revisa los tiempos de evaluación en la ListRules API.

  5. Valide las expresiones de las reglas: asegúrese de que las expresiones coincidan exactamente entre las definiciones de las reglas y las consultas manuales. Pruebe las expresiones con distintos intervalos de tiempo para comprender el comportamiento.

  6. Revise el estado de las reglas con regularidad: compruebe si hay errores en las evaluaciones de las reglas. Supervise los registros vendidos para detectar problemas recurrentes.

Si sigue estos pasos de solución de problemas y estas prácticas recomendadas, podrá identificar y resolver los problemas habituales relacionados con las evaluaciones de reglas en Amazon Managed Service for Prometheus.