Solución de problemas de evaluaciones 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.

Solución de problemas de evaluaciones 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 solucionar problemas relacionados con las reglas de alertas y registros.

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 temporal sintética ALERTS. Las series temporales ALERTS incluyen las siguientes etiquetas:

  • alertname: el nombre de la alerta.

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

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

    • firing: 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.

Solución de 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 los receptores de rutas 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 con time_interval, compruebe que las marcas de tiempo estén dentro de los intervalos especificados.

  2. Compruebe los permisos del receptor de alertas: cuando utilice un tema de Amazon SNS, verifique 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 ofrece registros proporcionados 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 la regla

Las reglas con formato incorrecto pueden provocar errores de evaluación. Utilice los siguientes métodos para identificar por qué una regla no se evaluó:

Usa la API ListRules

La API ListRules proporciona información sobre el estado de las reglas. Compruebe los campos health y lastError 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 } ] } ] } }

Use registros proporcionados

La ListRules API solo muestra la información más reciente. Para obtener un historial más detallado, habilite los registros proporcionados en su espacio de trabajo para acceder a lo siguiente:

  • Marcas temporales de los errores de evaluación

  • Mensajes de error detallados

  • Datos de evaluación históricos

Ejemplo de mensaje de registros proporcionados:

{ "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 Solución de problemas relacionados con las reglas y 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 administrar 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 Offset modifier 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, agregue una compensación, como: my_metric_name offset 15m .

Cuando las métricas se originan en orígenes diferentes, como dos servidores, es posible que se ingieran en momentos diferentes. Para mitigar esto, forme 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 datos de las reglas

Si observa brechas 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 supervisar la duración de la evaluación mediante la CloudWatch métrica RuleGroupLastEvaluationDuration para identificar los grupos de reglas que tardan 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 independientes

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 dependan unas de otras en el mismo grupo. Por lo general, los grupos de reglas más pequeños garantizan evaluaciones más coherentes y menos brechas.

Prácticas recomendadas para la evaluación de 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 supervisadas para comprender sus rangos de fluctuación normales.

  3. Utilice modificadores de compensación para las métricas retrasadas: agregue compensaciones para compensar los retrasos en la ingesta. Ajuste 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 métrica RuleGroupIterationsMissed. 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 proporcionados 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 para Prometheus.