Warum hat mein CloudWatch-Alarm den Status INSUFFICIENT\_DATA?

Lesedauer: 5 Minute
0

Mein Amazon CloudWatch-Alarm befindet sich im Status INSUFFICIENT_DATA. Wie kann ich herausfinden, was die Ursache dafür ist?

Kurzbeschreibung

Der Status INSUFFICIENT_DATA kann auf Folgendes hinweisen:

  • Ein Amazon CloudWatch-Alarm wurde gerade gestartet.
  • Die Metrik ist nicht verfügbar.
  • Die Metrikparameter wie Namensraum, Metrikname oder Dimensionen wurden falsch konfiguriert.
  • Es liegen nicht genügend Daten für die Metrik vor, um den Alarmstatus zu bestimmen.

Wenn sich Ihr Alarm unerwartet im Status INSUFFICIENT_DATA befindet, sehen Sie sich die folgenden Schritte zur Fehlerbehebung an, um einige der häufigsten Ursachen zu ermitteln.

Lösung

Normales Verhalten der Metrik

Wenn Sie einen CloudWatch-Alarm erstellen, lautet dessen erster Status standardmäßig INSUFFICIENT_DATA. Er verbleibt in diesem Zustand, bis es die erste Auswertung der überwachten Metrik abgeschlossen hat. In der Regel wechselt ein Alarm innerhalb weniger Minuten nach seiner Erstellung aus dem Zustand INSUFFICIENT_DATA heraus.

Ein Alarm mit dem Zustand INSUFFICIENT_DATA kann im Rahmen des normalen Verhaltens einer Metrik auftreten. Es gibt zwei Arten von Metriken, die sich darin unterscheiden, wie sie an CloudWatch übertragen werden: zeitraumgesteuert und ereignisgesteuert. Einige Dienste senden in regelmäßigen Abständen periodische Datenpunkte an ihre Metriken. Andere Dienste übertragen Metrikdaten, wenn sie durch bestimmte Ereignisse ausgelöst werden, und haben möglicherweise Zeiträume ohne Datenpunkte.

Ein Beispiel für eine zeitraumgesteuerte Metrik ist die Standard-Metrik CPUUtilization einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance. Diese Metrik hat alle fünf Minuten einen Datenpunkt. Wenn Sie die Instance jedoch beenden, überträgt der Dienst keine Datenpunkte an sie. Ein Beispiel für eine ereignisgesteuerte Metrik ist die Metrik HTTPCode_ELB_5XX_Count für einen Application Load Balancer. Der Elastic Load Balancing (ELB)-Service sendet Datenpunkte an diese Metrik, wenn von einem ELB eine 5XX-Antwort eingeht. Wenn während eines Zeitraums keine 5XX-Fehler auftreten, ist das Ergebnis ein leerer Zeitraum (und kein Nullwert).

Wenn ein Alarm eine Metrik überwacht, die während einer bestimmten Reihe von Zeiträumen keine Datenpunkte hat, und fehlende Daten als fehlend behandelt werden, ist der Status des Alarms während dieser Zeiträume INSUFFICIENT_DATA. Um den Alarm in den Status ALARM oder OK zu versetzen, konfigurieren Sie, wie der Alarm diese Zeiträume ohne Datenpunkte behandelt.

Falsche CloudWatch-Alarmeinstellungen

Jede Metrik wird durch einen Namensraum, einen Metriknamen und bis zu zehn Dimensionen definiert. Beim Abrufen eines Datenpunkts müssen Sie einen Zeitstempel (und optional eine Einheit) angeben. Wenn Sie einen falschen Wert für einen dieser Parameter angeben, versucht CloudWatch, eine Metrik abzurufen, die nicht existiert. Das Ergebnis ist ein leerer Datensatz.

Hinweis: Datenpunkte werden normalerweise in eine Metrik mit einer einzigen Einheit übertragen, Sie müssen die Einheit jedoch nicht angeben, wenn Sie einen Alarm erstellen. Wenn Sie keine Einheit angeben, treten keine Probleme im Zusammenhang mit falschen Einheitenkonfigurationen auf. Wenn die Datenpunkte in Ihrer Metrik jedoch mehrere Einheiten haben, empfiehlt es sich, die richtige Einheit zu verwenden.

Verwenden Sie die DescribeAlarms-API, um eine vollständige Liste der Parameter für Ihre überwachten Metriken zu erhalten. Sie können diese mit der ListMetrics-Ausgabe vergleichen. Überprüfen Sie die Parameter für:

  • Rechtschreibfehler und falsche Verwendung von Groß- und Kleinbuchstaben. Bei Namensbereichen, Metriknamen und Dimensionsschlüsseln/-werten wird zwischen Groß- und Kleinschreibung unterschieden.
  • Falsch angegebene oder fehlende Dimensionen.

Falsch konfigurierte Alarmzeiträume

Sie können einen Alarm konfigurieren, um Datenpunkte mit der gewünschten Frequenz abzurufen. Es kann jedoch zu unerwünschten Zuständen kommen, wenn der Alarm einen kürzeren Zeitraum verwendet als den Zeitraum, den der Dienst (oder die Quelle) verwendet, um die Datenpunkte an die Metrik zu senden. Um ungewollte INSUFFICIENT_DATA -Zustände zu vermeiden, empfiehlt es sich, den Zeitraum des Alarms so zu konfigurieren, dass er gleich oder größer ist als der Zeitraum, in dem die Datenpunkte der Metrik übertragen werden. Sie können auch die M von N-Einstellungen für den Alarm verwenden.

Verzögerte Lieferung von Datenpunkten

Abhängig von den Datenpunkten, die an CloudWatch gesendet werden, kann es bei einem Alarm, der eine Metrik überwacht, zu unerwarteten INSUFFICIENT_DATA-Zuständen kommen.

Sie könnten beispielsweise über eine benutzerdefinierte Anwendung verfügen, die Datenpunkte von einer in einer EC2-Instance bereitgestellten Software an eine benutzerdefinierte Metrik sendet. Um Datenverlust zu vermeiden, können Sie die Anwendung so konfigurieren, dass sie fehlgeschlagene API-Aufrufe wiederholt. Aufgrund eines externen Faktors (z. B. einer Änderung der VPC-Einstellungen) verliert die Instance jedoch die Konnektivität mit CloudWatch. In diesem Szenario generiert Ihre Umgebung immer noch Daten. Die gesendeten Datenpunkte schlagen jedoch fehl, bis das externe Problem behoben ist.

Wenn Sie einen Standardalarm eingerichtet haben, wertet der Alarm die Metrik jede Minute aus. Während der Auswertung erhält der Alarm die neuesten verfügbaren Datenpunkte aus der konfigurierten Metrik. Während dieses Zeitraums ohne Konnektivität wertet der Alarm die Metrik weiterhin aus. Da die Datenpunkte nicht erfolgreich an CloudWatch übermittelt wurden, kann der Alarm keine Datenpunkte für diese Auswertungszeiträume abrufen. Dies löst den Status INSUFFICIENT_DATA aus.

Nach der Wiederherstellung der Konnektivität sendet die Anwendung das Backlog an Datenpunkten, wobei jeder Datenpunkt seinen eigenen Zeitstempel hat. Da die Datenpunkte erst nach dieser Verzögerung gesendet werden, kann der Alarm nun die letzten Datenpunkte auf der Grundlage des Zeitraums und des Auswertungszeitraums abrufen, den Sie hierfür angegeben haben. Zu diesem Zeitpunkt werden in der Metrik keine leeren Felder mehr angezeigt, da die Datenpunkte jetzt in CloudWatch gespeichert sind. Da der Alarm diesen Zeitraum jedoch bereits ausgewertet hat, wird im Alarmverlauf immer noch eine Meldung angezeigt, die der folgenden ähnelt:

[...]
   "stateValue": "INSUFFICIENT_DATA",
   "stateReason": "Insufficient Data: 2 datapoints were unknown.",
   [...]

Wenn Sie nicht möchten, dass sich der Alarm im Status INSUFFICIENT_DATA befindet, können Sie ändern, wie der Alarm mit fehlenden Daten umgeht.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr