Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Résoudre les problèmes liés aux évaluations des règles
Ce guide fournit des procédures de step-by-step résolution des problèmes courants liés à l'évaluation des règles dans Amazon Managed Service for Prometheus (AMP). Suivez ces procédures pour diagnostiquer et résoudre les problèmes liés à vos règles d'alerte et d'enregistrement.
Rubriques
Valider l'état de déclenchement des alertes
Lorsque vous résolvez des problèmes d'évaluation des règles, vérifiez d'abord si votre alerte s'est déclenchée en interrogeant la série ALERTS
chronologique synthétique. Les séries ALERTS
chronologiques incluent les libellés suivants :
-
alertname — Le nom de l'alerte.
-
alertstate — En attente ou en cours de lancement.
-
en attente — L'alerte est en attente pendant la durée spécifiée dans la
for
clause. -
déclenchement — L'alerte a rempli les conditions pendant la durée spécifiée. Des libellés supplémentaires sont définis dans votre règle d'alerte.
-
Note
Lorsqu'une alerte est en cours de déclenchement ou en attente, la valeur d'échantillon est 1. Lorsque votre alerte est inactive, aucun échantillon n'est produit.
Résoudre les notifications d'alerte manquantes
Si des alertes se déclenchent mais que les notifications n'arrivent pas, vérifiez les paramètres d'Alertmanager suivants :
-
Vérifiez la configuration de votre Alertmanager : vérifiez que les itinéraires, les récepteurs et les paramètres sont correctement configurés. Passez en revue les paramètres de blocage des itinéraires, notamment les temps d'attente, les intervalles de temps et les étiquettes requises, qui peuvent affecter le déclenchement des alertes. Comparez les règles d'alerte avec les itinéraires et les récepteurs correspondants pour confirmer la bonne correspondance. Pour les itinéraires avec
time_interval
, vérifiez que les horodatages se situent dans les intervalles spécifiés. -
Vérifiez les autorisations du destinataire des alertes : lorsque vous utilisez une rubrique Amazon SNS, vérifiez qu'AMP dispose des autorisations requises pour publier des notifications. Pour de plus amples informations, veuillez consulter Autoriser Amazon Managed Service for Prometheus à envoyer des messages d'alerte à votre rubrique Amazon SNS.
-
Valider la compatibilité de la charge utile du récepteur — Vérifiez que votre récepteur d'alertes accepte le format de charge utile d'Alertmanager. Pour connaître les exigences relatives à Amazon SNS, consultez. Comprendre les règles de validation des messages Amazon SNS
-
Consultez les journaux d'Alertmanager — AMP fournit des journaux vendus par Alertmanager pour aider à résoudre les problèmes de notification. Pour de plus amples informations, veuillez consulter Surveillez les événements Prometheus via Amazon Managed Service grâce aux journaux CloudWatch .
Pour plus d'informations sur Alertmanager, consultez. Gestion et transfert des alertes dans Amazon Managed Service for Prometheus avec le gestionnaire d'alertes
Vérifier l'état de santé des règles
Des règles mal formées peuvent entraîner des échecs d'évaluation. Utilisez les méthodes suivantes pour identifier les raisons pour lesquelles une règle n'a pas pu être évaluée :
Utiliser l' ListRules API
L'ListRulesAPI fournit des informations sur l'état des règles. Vérifiez les lastError
champs health
et pour diagnostiquer les problèmes.
Exemple de réponse :
{ "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 } ] } ] } }
Utiliser des journaux vendus
L' ListRules API affiche uniquement les informations les plus récentes. Pour un historique plus détaillé, activez les journaux automatiques dans votre espace de travail pour accéder aux éléments suivants :
-
Horodatage des échecs d'évaluation
-
Messages d'erreur détaillés
-
Données d'évaluation historiques
Exemple de message de journal vendu :
{ "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" }
Pour d'autres exemples de journaux provenant de Ruler ou d'Alertmanager, reportez-vous Dépannage des règles aux sections et. Gestion et transfert des alertes dans Amazon Managed Service for Prometheus avec le gestionnaire d'alertes
Utiliser le décalage dans les requêtes pour gérer les délais d'ingestion
Par défaut, les expressions sont évaluées sans décalage (requête instantanée), en utilisant les valeurs au moment de l'évaluation. Si l'ingestion des métriques est retardée, les règles d'enregistrement peuvent ne pas représenter les mêmes valeurs que lorsque vous évaluez manuellement l'expression après l'ingestion de toutes les métriques.
Astuce
L'utilisation du modificateur de décalage peut réduire les problèmes causés par les retards d'ingestion. Pour plus d'informations, consultez la section Modificateur d'offset
Si votre règle est évaluée à 12 h, mais que le dernier échantillon pour la métrique date de 11 h 45 en raison d'un retard d'ingestion, la règle ne trouvera aucun échantillon à l'horodatage de 12 h 00. Pour atténuer ce problème, ajoutez un décalage, tel que :my_metric_name offset 15m
.
Lorsque les métriques proviennent de sources différentes, telles que deux serveurs, elles peuvent être ingérées à des moments différents. Pour atténuer ce problème, créez une expression telle que : metric_from_server_A / metric_from_server_B
Si la règle évalue entre les temps d'ingestion du serveur A et du serveur B, vous obtiendrez des résultats inattendus. L'utilisation d'un décalage peut aider à aligner les temps d'évaluation.
Problèmes courants et solutions correspondantes
Lacunes dans l'enregistrement des données relatives aux règles
Si vous remarquez des lacunes dans les données de vos règles d'enregistrement par rapport à l'évaluation manuelle (lorsque vous exécutez directement l'expression ProMQL originale de la règle d'enregistrement via l'API de requête ou l'interface utilisateur), cela peut être dû à l'une des raisons suivantes :
-
Délais d'évaluation longs : un groupe de règles ne peut pas faire l'objet de plusieurs évaluations simultanées. Si le temps d'évaluation dépasse l'intervalle configuré, les évaluations suivantes risquent d'être manquées. Plusieurs évaluations manquées consécutives dépassant l'intervalle configuré peuvent entraîner l'obsolescence de la règle d'enregistrement. Pour plus d'informations, consultez Staleness dans la
documentation de Prometheus. Vous pouvez surveiller la durée de l'évaluation RuleGroupLastEvaluationDuration
à l'aide de la CloudWatch métrique pour identifier les groupes de règles dont l'évaluation prend trop de temps. -
Surveillance des évaluations manquées : AMP fournit la
RuleGroupIterationsMissed
CloudWatch métrique permettant de suivre les cas où des évaluations sont ignorées. L' ListRules API affiche l'heure d'évaluation et l'heure de la dernière évaluation pour chaque règle/groupe, ce qui peut aider à identifier les modèles d'évaluations manquées. Pour de plus amples informations, veuillez consulter ListRules.
Recommandation : scindez les règles en groupes distincts
Pour réduire la durée des évaluations, divisez les règles en groupes de règles distincts. Les règles au sein d'un groupe s'exécutent de manière séquentielle, tandis que les groupes de règles peuvent s'exécuter en parallèle. Conservez les règles connexes qui dépendent les unes des autres dans le même groupe. En général, des groupes de règles plus restreints garantissent des évaluations plus cohérentes et réduisent les lacunes.
Bonnes pratiques pour l'évaluation des règles
-
Optimisez la taille des groupes de règles : limitez la taille des groupes de règles pour garantir des évaluations cohérentes. Regroupez les règles connexes, mais évitez les grands groupes de règles.
-
Définissez des intervalles d'évaluation appropriés : équilibre entre les alertes en temps opportun et la charge du système. Passez en revue les modèles de stabilité de vos indicateurs surveillés pour comprendre leurs plages de fluctuation normales.
-
Utilisez des modificateurs de décalage pour les mesures différées : ajoutez des décalages pour compenser les retards d'ingestion. Ajustez la durée du décalage en fonction des schémas d'ingestion observés.
-
Surveiller les performances d'évaluation — Suivez la
RuleGroupIterationsMissed
métrique. Consultez les délais d'évaluation dans l' ListRules API. -
Valider les expressions de règles : assurez-vous que les expressions correspondent exactement entre les définitions de règles et les requêtes manuelles. Testez des expressions avec différentes plages de temps pour comprendre le comportement.
-
Vérifiez régulièrement l'état des règles : vérifiez l'absence d'erreurs dans les évaluations des règles. Surveillez les journaux vendus pour détecter les problèmes récurrents.
En suivant ces étapes de dépannage et les meilleures pratiques, vous pouvez identifier et résoudre les problèmes courants liés à l'évaluation des règles dans Amazon Managed Service for Prometheus.