Benachrichtigungen mit Labels versehen

In diesem Dokument wird beschrieben, wie Sie Ihre Benachrichtigungen organisieren und priorisieren können, indem Sie ihnen benutzerdefinierte Labels zuweisen. Diese Labels werden für Benachrichtigungsrichtlinien konfiguriert und in Benachrichtigungsrichtlinien und Benachrichtigungen aufgeführt. Je nach Konfiguration werden die Labels auch in bestimmten Benachrichtigungen aufgeführt.

Über Labels

Labels sind Schlüssel/Wert-Paare, mit denen Informationen an eine Zeitreihe, eine Benachrichtigungsrichtlinie, eine Benachrichtigung oder eine Mitteilung angehängt werden. Die Labels einer Zeitreihe können beispielsweise die spezifische VM-Instanz identifizieren, aus der Daten erhoben wurden. Labels sind entweder benutzerdefiniert oder vordefiniert.

Benutzerdefinierte Labels

Benutzerdefinierte Labels enthalten Informationen, die Sie angeben. Diese Labels können entweder statische oder dynamische Werte haben:

Labelschlüssel müssen mit einem Kleinbuchstaben beginnen. Sowohl Labelschlüssel als auch Labelwerte dürfen nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.

Vordefinierte Labels

Vordefinierte Labels sind in Ressourcendeskriptoren enthalten. Diese Labels müssen beim Schreiben von Zeitreihendaten angegeben werden. Diese Labels enthalten Informationen zum erfassten Messwert oder zur Ressource, für die der Messwert erfasst wird. Die Labels in einer Zeitreihe können beispielsweise eine VM, eine Zone, ein Google Cloud Projekt und einen Gerätetyp identifizieren. Wenn in Monitoring eine Benachrichtigung auf Grundlage dieser Zeitreihe erstellt wird, werden die entsprechenden Labels übernommen.

App Hub-Labels

In App Hub werden Labels an Log-, Messwert- und Tracedaten angehängt, die von einer Anwendung und ihren Diensten und Arbeitslasten generiert werden. Mit diesen Labels kann die Google Cloud Infrastruktur Dashboards für Anwendungen, Dienste und Arbeitslasten erstellen, die Messwert- und Logdaten enthalten. Weitere Informationen finden Sie in einem der folgenden Dokumente:

Labels ansehen

Sie können die Labels einer Benachrichtigungsrichtlinie oder einer Benachrichtigung auf der Detailseite einer Benachrichtigung, der Detailseite einer Benachrichtigungsrichtlinie und in einigen Benachrichtigungen ansehen.

  • Benachrichtigungsrichtlinien: Statische benutzerdefinierte Labels werden im Bereich Nutzerlabels aufgeführt. Dynamische benutzerdefinierte Labels und vordefinierte Labels sind nicht sichtbar.
  • Warnungen: Statische benutzerdefinierte Labels werden im Bereich Richtlinienlabels und dynamische benutzerdefinierte Labels im Bereich Messwertlabels aufgeführt. Vordefinierte Labels sind in den Abschnitten Labels für überwachte Ressourcen und Messwertlabels aufgeführt.
  • Benachrichtigungen: Vordefinierte und benutzerdefinierte Labels werden in den folgenden Benachrichtigungstypen aufgeführt:

    • E-Mail
    • Google Chat
    • Logo: PagerDuty
    • Pub/Sub
    • Webhook

Beispiel: Benutzerdefinierte Labels mit dynamischen Werten hinzufügen

Mit PromQL können Sie ein Label so konfigurieren, dass sich sein Wert dynamisch basierend auf Zeitreihendaten ändert. Sie möchten beispielsweise, dass Ihre Benachrichtigungen ein criticality-Label haben, dessen Wert sich je nach Wert des überwachten Messwerts für die CPU-Auslastung ändert:

  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.9,
    "criticality", "CRITICAL", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.8,
    "criticality", "WARNING", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.7,
    "criticality", "INFO", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]),
    "criticality", "GOOD", "", ""
  )

Die folgende Abbildung veranschaulicht, wie Benachrichtigungsrichtlinien, die PromQL-Abfragen verwenden, die von ihnen überwachten Zeitachsendaten verarbeiten:

Abbildung zur Verarbeitung der überwachten Zeitreihen durch Benachrichtigungsrichtlinien.

Der Richtlinien-Handler verarbeitet die Daten zur CPU-Auslastung und gibt eine Zeitreihe aus, die angibt, wann die Bedingung erfüllt ist. Im vorherigen Beispiel wird die Bedingung erfüllt, wenn die CPU-Auslastung mindestens 70 % beträgt. Für jede Eingabezeitachse kann der Richtlinien-Handler eine von vier Zeitachsen generieren:

Name der Ausgabezeitreihe Bedingung erfüllt Beschreibung
„GOOD“ Nein Diese Zeitachse hat dieselben Labels wie die Eingabezeitachse. Es hat kein Schweregradlabel.
„CRITICAL“ Ja Die CPU-Auslastung beträgt mindestens 90%. Die Ausgabezeitachse hat dieselben Labels wie die Zeitachse „GOOD“ sowie ein Schweregradlabel mit dem Wert „CRITICAL“.
„WARNING“ Ja Die CPU-Auslastung beträgt mindestens 80 %, aber weniger als 90%. Die Ausgabetime-Series hat dieselben Labels wie die „GOOD“-Time-Series plus ein Schweregradlabel mit dem Wert „WARNING“.
„INFO“ Ja Die CPU-Auslastung beträgt mindestens 70 %, aber weniger als 80%. Die Ausgabezeitachse hat dieselben Labels wie die Zeitachse „GOOD“ sowie ein Schweregradlabel mit dem Wert „INFO“.

Die vom Richtlinien-Handler generierten Zeitreihendaten sind die Eingabe für den Alert Manager, der bestimmt, wann Benachrichtigungen erstellt und geschlossen werden. Um zu bestimmen, wann eine Benachrichtigung geschlossen werden soll, verwendet der Benachrichtigungsmanager die Werte der Felder duration, evaluationMissingData und autoClose.

Best Practices

So prüfen Sie, ob jeweils höchstens eine Benachrichtigung geöffnet ist, wenn Sie Labels erstellen, deren Werte dynamisch festgelegt werden:

  • Überschreiben Sie im Objekt MetricThreshold die Standardwerte für die folgenden Felder:

    • Feld duration: Auf einen Wert ungleich null festlegen.
    • Feld evaluationMissingData: Legen Sie fest, dass Benachrichtigungen geschlossen werden, wenn keine Daten mehr eingehen. Wenn Sie die Cloud Monitoring API verwenden, legen Sie dieses Feld auf EVALUATION_MISSING_DATA_INACTIVE fest. Wenn Sie die Google Cloud Konsole verwenden, legen Sie das Feld auf „Fehlende Datenpunkte werden als Werte behandelt, die nicht gegen die Richtlinienbedingung verstoßen“ fest.
  • Legen Sie im Objekt AlertStrategy das Feld autoClose auf den Mindestwert von 30 Minuten fest. Wenn Sie die Cloud Monitoring API verwenden, legen Sie dieses Feld auf 30m fest.

Weitere Informationen finden Sie unter Teilweise Messwertdaten.

Benachrichtigungsablauf

Angenommen, die CPU-Auslastungsmessungen liegen unter 70 %, wenn die Benachrichtigungsrichtlinie erstellt wird. Die folgende Sequenz veranschaulicht, wie Benachrichtigungen geöffnet und geschlossen werden:

  1. Da die CPU-Auslastungsmessungen unter 70 % liegen, generiert der Richtlinien-Handler die Zeitachse „GUT“ und es werden keine Benachrichtigungen geöffnet.

  2. Nehmen wir nun an, dass die CPU-Auslastung auf 93 % steigt. Der Richtlinien-Handler generiert keine Zeitreihendaten mehr für „GUT“ und beginnt mit der Generierung von Daten für die Zeitreihe „KRITISCH“.

    Der Alert-Manager sieht eine neue Zeitreihe mit dem Status „CRITICAL“, die die Bedingung erfüllt, und öffnet dann einen Alert. Die Benachrichtigung enthält das Schweregradlabel mit dem Wert CRITICAL.

  3. Angenommen, die CPU-Auslastung sinkt auf 75%. Der Richtlinien-Handler generiert die Zeitreihe „CRITICAL“ nicht mehr und beginnt mit der Generierung der Zeitreihe „INFO“.

    Der Benachrichtigungsmanager sieht eine neue Zeitreihe vom Typ „INFO“, die die Bedingung erfüllt, und öffnet dann eine Benachrichtigung. Die Benachrichtigung enthält das Label „severity“ mit dem Wert INFO.

    Der Benachrichtigungsmanager sieht, dass keine Daten für die Zeitreihe „CRITICAL“ eingehen und dass für diese Zeitreihe eine Benachrichtigung offen ist. Da die Richtlinie so konfiguriert ist, dass Benachrichtigungen geschlossen werden, wenn keine Daten mehr eingehen, schließt der Benachrichtigungsmanager die Benachrichtigung, die der Zeitreihe „CRITICAL“ zugeordnet ist. Daher bleibt nur die Benachrichtigung offen, deren Schweregradlabel den Wert INFO hat.

  4. Nehmen wir schließlich an, dass die CPU-Auslastung auf 45 % sinkt. Dieser Wert liegt unter allen Schwellenwerten. Der Richtlinien-Handler beendet daher die Generierung der Zeitreihe „INFO“ und beginnt mit der Generierung der Zeitreihe „GOOD“.

    Der Benachrichtigungsmanager sieht, dass keine Daten für die Zeitreihe „INFO“ eingehen und dass für diese Zeitreihe eine Benachrichtigung offen ist. Da die Richtlinie die empfohlenen Einstellungen verwendet, wird die Benachrichtigung geschlossen.

Wenn Sie nicht den empfohlenen Wert für das Feld evaluationMissingData verwenden, werden offene Benachrichtigungen nicht sofort geschlossen, wenn keine Daten mehr eingehen. Das kann dazu führen, dass mehrere offene Benachrichtigungen für dieselbe Eingabezeitreihe angezeigt werden. Weitere Informationen finden Sie unter Teilweise Messwertdaten.

Nächste Schritte