Schweregrade zu einer Benachrichtigungsrichtlinie hinzufügen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

In diesem Dokument wird beschrieben, wie Sie einer Benachrichtigungsrichtlinie benutzerdefinierte Labels hinzufügen und diese Labels zur Verwaltung von Vorfällen und Benachrichtigungen verwenden können.

Über Labels

Labels sind Schlüssel/Wert-Paare, die Zeitachsen, Benachrichtigungsrichtlinien und Vorfällen zugeordnet sind. Es gibt Messwertlabels, Ressourcenlabels und benutzerdefinierte Labels. Messwert- und Ressourcenlabels enthalten spezifische Informationen zum erfassten Messwert oder zur Ressource, für die der Messwert geschrieben wird. Benutzerdefinierte Labels sind Labels, die Sie erstellen und mit denen Informationen erfasst werden, die Ihren Anforderungen entsprechen.

Beim Schreiben von Zeitachsendaten werden den Daten Labels hinzugefügt, um Informationen zu diesen Daten aufzuzeichnen. Die Labels in einer Zeitachse können beispielsweise eine virtuelle Maschine (VM), eine Zone, ein Google Cloud-Projekt und einen Gerätetyp identifizieren.

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

  • Ein Label für eine Benachrichtigungsrichtlinie hat einen statischen Wert. Ein Beispiel dafür, wie Sie ein Label mit dem Wert critical hinzufügen, finden Sie unter Statische Schweregrade erstellen.

    Sie können diese Labels einer Benachrichtigungsrichtlinie hinzufügen, wenn Sie die Google Cloud Console oder die Cloud Monitoring API verwenden:

    • Google Cloud Console: Zum Hinzufügen von Richtlinienlabels verwenden Sie die Vorschaubenachrichtigungsoberfläche. Die Optionen der Richtlinienlabels sind auf der Seite enthalten, auf der Sie Benachrichtigungskanäle und Dokumentation konfigurieren. Weitere Informationen finden Sie unter Benachrichtigungsrichtlinie erstellen.

    • Cloud Monitoring API: Verwenden Sie das Feld userLabels des Objekts AlertPolicy, um Richtlinienlabels hinzuzufügen. Weitere Informationen finden Sie unter Benachrichtigungsrichtlinien nach API verwalten.

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

  • Für ein Label eines Vorfalls kann der Wert dynamisch festgelegt werden. Das heißt, der Wert der Zeitachsendaten kann den Labelwert bestimmen. Ein Beispiel finden Sie unter Dynamische Schweregrade mit Monitoring Query Language (MQL) erstellen.

    Sie können diese Labels definieren, wenn Sie die Bedingung einer Benachrichtigungsrichtlinie mit MQL angeben.

Labels sind in Benachrichtigungen enthalten. Wenn Sie Labels hinzufügen, die den Schweregrad eines Vorfalls angeben, können Sie diese Benachrichtigungen verwenden, um Ihre Benachrichtigungen zur Untersuchung zu priorisieren.

Labels in Benachrichtigungen ansehen

Die Labels einer Benachrichtigungsrichtlinie oder eines Vorfalls können Sie sich auf der Detailseite eines Vorfalls, auf der Detailseite einer Benachrichtigungsrichtlinie und in einigen Benachrichtigungen ansehen:

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

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

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

    Vorfallslabels 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, werden im Feld metric ein Messwerttyp, der Anzeigename für den Messwert, die Messwertlabels und alle benutzerdefinierten Labels angezeigt, die dem Vorfall hinzugefügt wurden.

Beispiel: Schweregrad eines Berichts mit Labels

Dieser Abschnitt enthält zwei Beispiele, die zeigen, wie Sie mithilfe von Labels Informationen zu Schweregraden in eine Benachrichtigung aufnehmen können.

Angenommen, Sie möchten benachrichtigt werden, wenn die CPU-Auslastung einer VM einen Grenzwert überschreitet, und Sie möchten die folgenden Informationen zu Schweregraden in der Benachrichtigung angeben:

  • critical: Die CPU-Auslastung liegt bei mindestens 90%.
  • warning: Die CPU-Auslastung liegt bei mindestens 80 %, aber unter 90%.
  • info: Die CPU-Auslastung liegt bei mindestens 70 %, aber unter 80%.

Statische Schweregrade erstellen

Sie erstellen drei Benachrichtigungsrichtlinien. Sie konfigurieren die Bedingung für jede Richtlinie so, dass sie ausgelöst wird, wenn die CPU-Auslastung höher ist als der Grenzwert. Außerdem fügen Sie jeder Richtlinie ein Schweregradlabel hinzu, dessen Wert den Grenzwert der Richtlinie bestimmt.

Sie erstellen drei Richtlinien, da Labels in Benachrichtigungsrichtlinien statische Werte haben. Daher müssen Sie für jeden Wert des Labels eine Richtlinie erstellen.

  • Richtlinie A: Die Bedingung wird ausgelöst, wenn die CPU-Auslastung mindestens 90 % beträgt. Das Label severity ist auf critical festgelegt:

    "userLabels": {
       "severity": "critical",
    }
    
  • Richtlinie B: Die Bedingung wird ausgelöst, wenn die CPU-Auslastung mindestens 80 % beträgt. Das Label severity ist auf warning festgelegt:

    "userLabels": {
       "severity": "warning",
    }
    
  • Richtlinie C: Die Bedingung wird ausgelöst, wenn die CPU-Auslastung mindestens 70 % beträgt. Das Label severity ist auf info festgelegt:

    "userLabels": {
       "severity": "info",
    }
    

Wenn die CPU-Auslastung in diesem Beispiel 90 % überschreitet, erhalten Sie drei Benachrichtigungen, eine von jeder Richtlinie. Sie können den Wert des Labels severity verwenden, um zu bestimmen, welcher Vorfall zuerst untersucht werden soll.

Wenn die CPU-Auslastung auf einen Wert von weniger als 70 % sinkt, schließt Monitoring automatisch alle offenen Vorfälle. Informationen zur Schließung von Vorfällen finden Sie unter Vorfälle schließen.

Dynamische Schweregrade mit MQL erstellen

Wenn Sie Labels für Vorfälle erstellen, können Sie eine Richtlinie verwenden und den Wert der Labels in der Benachrichtigung durch den Wert der Daten bestimmen lassen. Das heißt, Sie müssen nicht für jeden Wert Ihres Labels eine eigene Benachrichtigungsrichtlinie erstellen.

Hier ein Beispiel für die MQL-Abfrage, mit der ein Severity-Label hinzugefügt wird:

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

Die folgende Abbildung zeigt, wie MQL-Benachrichtigungsrichtlinien die Zeitachsendaten verarbeiten, die sie überwachen:

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. Für jede Eingabezeitachse kann der Richtlinien-Handler eine von vier Zeitachsen generieren:

Name der Ausgabezeitachse Bedingung ausgelöst Beschreibung
"Gut" Nein Diese Zeitachse hat dieselben Labels wie die Eingabezeitachse. Es hat keinen Schweregrad.
&Kritisch Ja Die CPU-Auslastung liegt bei mindestens 90%. Die Zeitachse der Ausgabe hat die gleichen Labels wie die Zeitachse „Gut“ plus ein Schweregradlabel mit dem Wert „KRITISCH“.
&Warnung Ja Die CPU-Auslastung liegt bei mindestens 80 %, aber unter 90%. Die Zeitachse der Ausgabe hat die gleichen Labels wie die Zeitachse „Gut“ und ein Schweregradlabel mit dem Wert „WARNUNG“.
&Informationen Ja Die CPU-Auslastung liegt bei mindestens 70 %, aber unter 80%. Die Ausgabezeitachse hat die gleichen Labels wie die Zeitachse „gut“ und ein Schweregradlabel mit dem Wert "INFO".

Die vom Richtlinien-Handler generierten Zeitachsendaten sind die Eingaben im Vorfallmanager, der bestimmt, wann Vorfälle erstellt und geschlossen werden. Der Vorfallmanager verwendet die Werte der Felder duration, evaluationMissingData und autoClose, um zu bestimmen, wann ein Vorfall geschlossen werden soll.

Best Practices

Wenn Sie Labels erstellen möchten, deren Werte dynamisch festgelegt werden, sollten Sie Folgendes tun:

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

    • Feld duration: Auf einen Wert ungleich null gesetzt.
    • 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, setzen Sie das Feld auf „Fehlende Datenpunkte, die als Werte behandelt werden, die nicht gegen die Richtlinienbedingung verstoßen“.
  • 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 Daten zu Teilmesswerten.

Ablauf des Vorfalls

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

  1. Da die CPU-Auslastung weniger als 70 % beträgt, generiert der Richtlinien-Handler die Zeitachse „Gut“ und es werden keine Vorfälle geöffnet.

  2. Als Nächstes nehmen wir an, dass die CPU-Auslastung auf 93 % steigt. Der Richtlinien-Handler generiert keine Zeitachsen mehr als „Gut“ und beginnt mit der Generierung von Daten für die Zeitachse „Kritisch“.

    Der Vorfallmanager sieht eine neue Zeitachse, die die Bedingung „Kritisch“ auslöst, und erstellt einen Vorfall. Die Benachrichtigung enthält das Label mit dem Schweregrad CRITICAL.

  3. Angenommen, die CPU-Auslastung liegt bei 75%. Der Richtlinien-Handler generiert keine Zeitachsen mehr als „Korrigiert“ und beginnt mit der Erstellung der Zeitachse.

    Der Vorfallmanager sieht eine neue Zeitachse, die die Bedingung, die Informationszeitachse, auslöst, und erstellt einen Vorfall. Die Benachrichtigung enthält das Label mit dem Schweregrad INFO.

    Der Vorfallmanager erkennt, dass für die Zeitachse keine Daten eingehen und dass für diese Zeitachse ein Vorfall offen ist. Da die Richtlinie so konfiguriert ist, dass Vorfälle geschlossen werden, wenn keine Daten mehr eingehen, schließt der Vorfallmanager den Vorfall, der mit der Zeitachse &#39 verbunden ist. Daher bleibt nur der Vorfall offen, dessen Schweregradlabel den Wert INFO hat.

  4. Nehmen wir abschließend an, dass die CPU-Auslastung auf 45 % sinkt. Dieser Wert ist kleiner als alle Schwellenwerte, sodass der Richtlinien-Handler die Zeitachse „Info“ nicht mehr generiert und die Zeitachse „Gut“ generiert.

    Der Vorfallmanager sieht, dass für die Zeitachse keine Daten eingehen und dass für diese Zeitachse ein Vorfall offen ist. Da die Richtlinie die empfohlenen Einstellungen verwendet, ist 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. Dadurch werden möglicherweise mehrere offene Vorfälle für dieselbe Eingabezeitachse angezeigt. Weitere Informationen finden Sie unter Daten zu Teilmesswerten.

Weitere Informationen