Benachrichtigungen mit Labels versehen

In diesem Dokument wird beschrieben, wie Sie Benachrichtigungen und Vorfälle verwalten können, indem Sie einer Benachrichtigungsrichtlinie benutzerdefinierte Labels hinzufügen. Da benutzerdefinierte Labels in Benachrichtigungen enthalten sind, enthält die Benachrichtigung beim Hinzufügen von Labels, die den Schweregrad eines Vorfalls angeben, Informationen, die Ihnen bei der Priorisierung Ihrer Benachrichtigungen für die Untersuchung helfen können.

Über Labels

Labels sind Schlüssel/Wert-Paare, die mit Zeitreihen, Benachrichtigungsrichtlinien und Vorfällen verknüpft sind. Es gibt Messwert-, Ressourcen- und benutzerdefinierte Labels. Messwert- und Ressourcenlabels enthalten spezifische Informationen über den erfassten Messwert oder die Ressource, in die der Messwert geschrieben wird. Benutzerdefinierte Labels hingegen sind von Ihnen erstellte Labels, mit denen Informationen erfasst werden, die speziell auf Ihre Anforderungen zugeschnitten sind.

Wenn Zeitreihendaten geschrieben werden, werden die Daten mit Labels versehen, um Informationen über diese Daten aufzuzeichnen. Die Labels auf einer Zeitachse können beispielsweise eine virtuelle Maschine (VM), eine Zone, ein Google Cloud-Projekt und einen Gerätetyp identifizieren.

Sie können Nutzerlabels zu Benachrichtigungsrichtlinien und Vorfällen hinzufügen:

Labels in Benachrichtigungen ansehen

Die Labels einer Benachrichtigungsrichtlinie oder eines Vorfalls finden Sie auf der Detailseite eines Vorfalls, der Detailseite einer Benachrichtigungsrichtlinie und in einigen Benachrichtigungen:

  • In E-Mail-Benachrichtigungen werden die Labels, die Sie der Richtlinie hinzufügen, im Abschnitt Richtlinienlabels aufgeführt. Labels, die Sie einem Vorfall hinzufügen, werden unter Messwertlabels aufgeführt.

  • In PagerDuty-, Webhooks- und Pub/Sub-Benachrichtigungen sind die Labels, die Sie einer Benachrichtigungsrichtlinie oder einem Vorfall hinzufügen, in den JSON-Daten enthalten. Die Labels der Benachrichtigungsrichtlinie sind im Feld policy_user_labels der JSON-Struktur aufgeführt:

    "policy_user_labels": {
      "severity": "critical",
    }
    

    Vorfalllabels sind im Feld metric der JSON-Struktur enthalten:

    "metric": {
      "type" : "compute.googleapis.com/instance/cpu/utilization"
      "displayName": "CPU Utilization",
      "labels": {
        "instance_name": "some_instance_name",
        "severity": "critical"
      },
    }
    

    Wie bereits gezeigt, enthält das Feld metric einen Messwerttyp, den Anzeigenamen für den Messwert, die Messwertlabels und alle benutzerdefinierten Labels, die dem Vorfall hinzugefügt wurden.

Beispiel: Dynamische Schweregrade mithilfe von Labels und MQL erstellen

Mit MQL können Sie ein Label so konfigurieren, dass sein Wert sich basierend auf Zeitreihendaten dynamisch ändert. Beispiel: Sie möchten, dass Ihre Vorfälle das Label Criticality haben, dessen Wert sich abhängig vom Wert des Messwerts für die überwachte CPU-Auslastung ändert:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| group_by sliding(5m), [value_utilization_mean: mean(value.utilization)]
| map
    add[
      Criticality:
        if(val() >= 90 '%', 'CRITICAL',
          if(val() >= 80 '%', 'WARNING',
            if(val() >= 70 '%', 'INFO', 'GOOD')))
    ]
| condition val() >= 70 '%'

Die folgende Abbildung zeigt, wie Benachrichtigungsrichtlinien, die MQL-Abfragen verwenden, die von ihnen überwachten Zeitreihendaten verarbeiten:

Darstellung der Verarbeitung von überwachten Zeitachsen durch Benachrichtigungsrichtlinien

Der Richtlinien-Handler verarbeitet die CPU-Auslastungsdaten und gibt eine Zeitachse aus, die angibt, wann die Bedingung ausgelöst wird. Im vorherigen Beispiel wird die Bedingung ausgelöst, wenn die CPU-Auslastung mindestens 70 % beträgt. Der Richtlinien-Handler kann für jede Eingabezeitachse eine von vier Zeitachsen generieren:

Name der Ausgabezeitreihe Bedingung ausgelöst Beschreibung
„GUT“ Nein Diese Zeitachse hat dieselben Labels wie die Eingabezeitachse. Sie hat kein Label für den Schweregrad.
„KRITISCH“ Ja Die CPU-Auslastung beträgt mindestens 90%. Die Ausgabezeitachse hat die gleichen Labels wie die Zeitreihe „GUT“ sowie ein Wichtigkeitslabel mit dem Wert „KRITISCH“.
„WARNUNG“ Ja Die CPU-Auslastung beträgt mindestens 80 %, aber weniger als 90%. Die Ausgabezeitachse hat die gleichen Labels wie die Zeitreihe „GUT“ sowie ein Wichtigkeitslabel mit dem Wert „WARNING“.
„INFO“ Ja Die CPU-Auslastung beträgt mindestens 70 %, aber weniger als 80%. Die Ausgabezeitachse hat die gleichen Labels wie die Zeitreihe „GOOD“ sowie ein Wichtigkeitslabel mit dem Wert „INFO“.

Die vom Richtlinien-Handler generierten Zeitreihendaten werden in den Vorfallmanager eingegeben. Dieser bestimmt, wann Vorfälle erstellt und geschlossen werden. Um zu bestimmen, wann ein Vorfall geschlossen werden muss, verwendet der Vorfall Manager die Werte der Felder duration, evaluationMissingData und autoClose.

Best Practices

So sorgen Sie dafür, dass immer nur ein Vorfall 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: Legen Sie einen Wert ungleich null fest.
    • Feld evaluationMissingData: Legen Sie fest, dass Vorfälle 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 Console verwenden, legen Sie das Feld auf „Fehlende Datenpunkte, die als Werte behandelt werden, 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 Teilmesswertdaten.

Ablauf eines Vorfalls

Angenommen, die Messungen der CPU-Auslastung liegen beim Erstellen der Benachrichtigungsrichtlinie unter 70 %. Die folgende Abfolge zeigt, wie Vorfälle geöffnet und geschlossen werden:

  1. Da die Messungen der CPU-Auslastung unter 70 % liegen, generiert der Richtlinien-Handler die Zeitachse „GOOD“ und es werden keine Vorfälle geöffnet.

  2. Nehmen wir als Nächstes an, dass die CPU-Auslastung auf 93 % steigt. Der Richtlinien-Handler beendet die Erzeugung der Zeitreihendaten „GUT“ und beginnt mit der Erzeugung von Daten für die Zeitreihe „Kritisch“.

    Der Vorfallmanager sieht eine neue Zeitachse, die die Bedingung auslöst, und die Zeitachse „KRITISCH“, um einen Vorfall zu erstellen. Die Benachrichtigung enthält das Label für den Schweregrad mit dem Wert CRITICAL.

  3. Angenommen, die CPU-Auslastung sinkt auf 75%. Der Richtlinien-Handler beendet das Generieren der Zeitachse „CRITICAL“ und beginnt mit der Erzeugung der Zeitachse „INFO“.

    Der Vorfallsmanager sieht eine neue Zeitachse, die die Bedingung auslöst, und die Zeitachse „INFO“, und erstellt einen Vorfall. Die Benachrichtigung enthält das Label für den Schweregrad mit dem Wert INFO.

    Der Vorfallmanager sieht, dass für die Zeitachse „KRITIK“ keine Daten eingehen und dass ein Vorfall für diese Zeitreihe offen ist. Da die Richtlinie so konfiguriert ist, dass Vorfälle geschlossen werden, wenn keine Daten mehr ankommen, schließt der Vorfallsmanager den Vorfall, der mit der Zeitachse „KRITISCH“ verknüpft ist. Daher bleibt nur der Vorfall offen, dessen Schweregradlabel den Wert INFO hat.

  4. Nehmen wir abschließend an, die CPU-Auslastung sinkt auf 45%. Dieser Wert ist kleiner als alle Schwellenwerte. Daher generiert der Richtlinien-Handler die Zeitachse „INFO“ nicht mehr und beginnt mit der Erzeugung der Zeitachse „GOOD“.

    Der Vorfallmanager sieht, dass für die Zeitachse „INFO“ keine Daten eingehen und dass ein Vorfall für diese Zeitreihe offen ist. Da die Richtlinie die empfohlenen Einstellungen verwendet, wird der Vorfall geschlossen.

Wenn Sie den empfohlenen Wert für das Feld evaluationMissingData nicht verwenden, werden offene Vorfälle nicht sofort geschlossen, wenn keine Daten mehr eingehen. Dies kann dazu führen, dass für dieselbe Eingabezeitachse mehrere offene Vorfälle angezeigt werden. Weitere Informationen finden Sie unter Teilmesswertdaten.

Nächste Schritte