Problembehandlung bei Regelauswertungen - Amazon Managed Service für Prometheus

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Problembehandlung bei Regelauswertungen

Dieses Handbuch enthält Verfahren step-by-step zur Behebung häufiger Probleme bei Regelauswertungen in Amazon Managed Service for Prometheus (AMP). Folgen Sie diesen Verfahren, um Probleme mit Ihren Warn- und Aufzeichnungsregeln zu diagnostizieren und zu lösen.

Überprüfen Sie den Status der Alarmauslösung

Überprüfen Sie bei der Behebung von Problemen mit der Regelauswertung zunächst, ob Ihre Warnung ausgelöst wurde, indem Sie die synthetische Zeitreihe ALERTS abfragen. Die ALERTS Zeitreihen enthalten die folgenden Bezeichnungen:

  • alertname — Der Name der Warnung.

  • alertstate — Entweder ausstehend oder wird ausgelöst.

    • ausstehend — Die Warnung wartet auf die in der Klausel angegebene Dauer. for

    • Auslösen — Die Warnung hat die Bedingungen für die angegebene Dauer erfüllt. Zusätzliche Bezeichnungen sind in Ihrer Warnregel definiert.

Anmerkung

Solange eine Warnung ausgelöst wird oder aussteht, ist der Beispielwert 1. Wenn Ihre Warnung inaktiv ist, werden keine Proben produziert.

Beheben Sie fehlende Warnmeldungen

Wenn Benachrichtigungen ausgelöst werden, aber keine Benachrichtigungen eintreffen, überprüfen Sie die folgenden Alertmanager-Einstellungen:

  1. Überprüfen Sie Ihre Alertmanager-Konfiguration — Vergewissern Sie sich, dass Routen, Empfänger und Einstellungen korrekt konfiguriert sind. Überprüfen Sie die Einstellungen für die Routenblockierung, einschließlich Wartezeiten, Zeitintervalle und erforderlicher Kennzeichnungen, die sich auf die Auslösung von Alarmen auswirken können. Vergleichen Sie die Alarmregeln mit den entsprechenden Routen und Empfängern, um sicherzustellen, dass sie korrekt übereinstimmen. Stellen Sie bei Routen mit sichertime_interval, dass die Zeitstempel innerhalb der angegebenen Intervalle liegen.

  2. Überprüfen Sie die Berechtigungen des Alarmempfängers — Wenn Sie ein Amazon SNS SNS-Thema verwenden, stellen Sie sicher, dass AMP über die erforderlichen Berechtigungen zum Veröffentlichen von Benachrichtigungen verfügt. Weitere Informationen finden Sie unter Amazon Managed Service for Prometheus die Erlaubnis erteilen, Warnmeldungen zu Ihrem Amazon SNS SNS-Thema zu senden.

  3. Überprüfen Sie die Payload-Kompatibilität des Empfängers — Vergewissern Sie sich, dass Ihr Alert-Empfänger das Payload-Format von Alertmanager akzeptiert. Informationen zu den Amazon SNS SNS-Anforderungen finden Sie unterGrundlegendes zu den Amazon SNS SNS-Nachrichtenvalidierungsregeln.

  4. Überprüfen Sie die Alertmanager-Protokolle — AMP stellt von Alertmanager bereitgestellte Protokolle zur Verfügung, um Probleme mit Benachrichtigungen zu beheben. Weitere Informationen finden Sie unter Überwachen Sie Amazon Managed Service für Prometheus-Ereignisse mit Protokollen CloudWatch .

Weitere Informationen zu Alertmanager finden Sie unter. Verwaltung und Weiterleitung von Benachrichtigungen in Amazon Managed Service für Prometheus mit Alert Manager

Überprüfen Sie den Integritätsstatus der Regel

Falsch formatierte Regeln können zu Fehlern bei der Evaluierung führen. Verwenden Sie die folgenden Methoden, um zu ermitteln, warum eine Regel nicht ausgewertet werden konnte:

Verwenden Sie die ListRules API

Die ListRules API bietet Informationen zur Regelintegrität. Überprüfen Sie die lastError Felder health und, um Probleme zu diagnostizieren.

Beispiel für eine Antwort:

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

Verwenden Sie verkaufte Logs

Die ListRules API zeigt nur die neuesten Informationen an. Für einen detaillierteren Verlauf aktivierst du in deinem Workspace die Option „Verkaufte Logs“ für den Zugriff auf:

  • Zeitstempel von Fehlschlägen bei der Evaluierung

  • Detaillierte Fehlermeldungen

  • Historische Bewertungsdaten

Beispiel für eine versendete Protokollnachricht:

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

Weitere Beispiele für Logs von Ruler oder Alertmanager finden Sie unter und. Fehlersuche-Ruler Verwaltung und Weiterleitung von Benachrichtigungen in Amazon Managed Service für Prometheus mit Alert Manager

Verwenden Sie Offset in Abfragen, um Verzögerungen bei der Datenerfassung zu beheben

Standardmäßig werden Ausdrücke ohne Offset (Sofortabfrage) ausgewertet, wobei die Werte zum Zeitpunkt der Auswertung verwendet werden. Wenn die Erfassung von Metriken verzögert erfolgt, stellen die Aufzeichnungsregeln möglicherweise nicht dieselben Werte dar wie bei der manuellen Auswertung des Ausdrucks, nachdem alle Metriken aufgenommen wurden.

Tipp

Durch die Verwendung des Offset-Modifikators können Probleme reduziert werden, die durch Verzögerungen bei der Erfassung verursacht werden. Weitere Informationen finden Sie unter Offset-Modifikator in der Prometheus-Dokumentation.

Wenn Ihre Regel um 12:00 Uhr ausgewertet wird, die letzte Stichprobe für die Metrik aber aufgrund der Verzögerung bei der Datenaufnahme von 11:45 Uhr stammt, findet die Regel bis 12:00 Uhr keine Stichproben. Um dies zu verringern, fügen Sie einen Offset hinzu, z. B.:. my_metric_name offset 15m

Wenn Metriken aus verschiedenen Quellen stammen, z. B. aus zwei Servern, können sie zu unterschiedlichen Zeiten aufgenommen werden. Um dem entgegenzuwirken, formulieren Sie einen Ausdruck wie: metric_from_server_A / metric_from_server_B

Wenn die Regel zwischen den Aufnahmezeiten von Server A und Server B ausgewertet wird, erhalten Sie unerwartete Ergebnisse. Die Verwendung eines Offsets kann dazu beitragen, die Evaluierungszeiten aufeinander abzustimmen.

Häufige Probleme und Lösungen

Lücken bei der Aufzeichnung von Regeldaten

Wenn Sie Lücken in den Daten Ihrer Aufzeichnungsregeln im Vergleich zur manuellen Auswertung feststellen (wenn Sie den ursprünglichen PromQL-Ausdruck der Aufzeichnungsregel direkt über die Abfrage-API oder Benutzeroberfläche ausführen), kann dies auf einen der folgenden Gründe zurückzuführen sein:

  1. Lange Bewertungszeiten — Eine Regelgruppe kann nicht mehrere gleichzeitige Auswertungen haben. Wenn die Evaluierungszeit das konfigurierte Intervall überschreitet, können nachfolgende Evaluierungen verpasst werden. Mehrere aufeinanderfolgende verpasste Bewertungen, die das konfigurierte Intervall überschreiten, können dazu führen, dass die Aufzeichnungsregel veraltet ist. Weitere Informationen finden Sie unter Staleness in der Prometheus-Dokumentation. Sie können die Testdauer anhand der CloudWatch Metrik überwachenRuleGroupLastEvaluationDuration, um Regelgruppen zu identifizieren, deren Auswertung zu lange dauert.

  2. Überwachung verpasster Bewertungen — AMP bietet die RuleGroupIterationsMissed CloudWatch Metrik, mit der Sie nachverfolgen können, wann Bewertungen übersprungen wurden. Die ListRules API zeigt für jede Regel/Gruppe den Zeitpunkt der Bewertung und den Zeitpunkt der letzten Bewertung an. Dies kann helfen, Muster verpasster Bewertungen zu identifizieren. Weitere Informationen finden Sie unter ListRules.

Empfehlung: Teilen Sie die Regeln in separate Gruppen auf

Um die Dauer der Evaluierung zu verkürzen, teilen Sie die Regeln in separate Regelgruppen auf. Regeln innerhalb einer Gruppe werden sequentiell ausgeführt, während Regelgruppen parallel ausgeführt werden können. Bewahren Sie verwandte Regeln, die voneinander abhängen, in derselben Gruppe auf. Im Allgemeinen sorgen kleinere Regelgruppen für einheitlichere Bewertungen und weniger Lücken.

Bewährte Verfahren für die Bewertung von Regeln

  1. Optimieren Sie die Größe der Regelgruppen — Halten Sie die Regelgruppen klein, um konsistente Bewertungen zu gewährleisten. Gruppieren Sie verwandte Regeln zusammen, vermeiden Sie jedoch große Regelgruppen.

  2. Legen Sie angemessene Bewertungsintervalle fest — sorgen Sie für ein ausgewogenes Verhältnis zwischen rechtzeitigen Warnmeldungen und Systemlast. Überprüfen Sie die Stabilitätsmuster Ihrer überwachten Messwerte, um deren normale Schwankungsbreite zu ermitteln.

  3. Verwenden Sie Offset-Modifikatoren für verspätete Messwerte — Fügen Sie Offsets hinzu, um Verzögerungen bei der Datenerfassung auszugleichen. Passen Sie die Offset-Dauer anhand der beobachteten Aufnahmemuster an.

  4. Überwachen Sie die Evaluierungsleistung — Verfolgen Sie die MetrikRuleGroupIterationsMissed. Überprüfen Sie die Testzeiten in der ListRules API.

  5. Regelausdrücke validieren — Stellen Sie sicher, dass die Ausdrücke zwischen Regeldefinitionen und manuellen Abfragen exakt übereinstimmen. Testen Sie Ausdrücke mit unterschiedlichen Zeiträumen, um das Verhalten zu verstehen.

  6. Regelmäßige Überprüfung der Regelintegrität — Prüfen Sie die Regelauswertung auf Fehler. Überwachen Sie die ausgelieferten Protokolle auf wiederkehrende Probleme.

Wenn Sie diese Schritte und bewährten Methoden zur Fehlerbehebung befolgen, können Sie häufig auftretende Probleme mit Regelauswertungen in Amazon Managed Service for Prometheus identifizieren und lösen.