Benachrichtigung über Ihre Brennrate

Sie können Benachrichtigungsrichtlinien für Ihre Service Level Objectives (SLOs) erstellen, um darüber informiert zu werden, ob Sie möglicherweise gegen ein SLO verstoßen. Wählen Sie das SLO aus, das Sie überwachen möchten, und richten Sie dann eine Bedingung ein, die eine Warnung auslöst, wenn die Bedingung verletzt wird. Die Bedingung wird in der Regel durch die Auswahl eines Grenzwerts, der einen Verstoß darstellt, und eines Zeitraums, für den der Verstoß zulässig ist, ausgedrückt. Wenn der Grenzwert länger als die zulässige Dauer überschritten wird, wird die Benachrichtigungsrichtlinie ausgelöst.

Auf dieser Seite wird beschrieben, wie Sie eine Benachrichtigungsrichtlinie für die Brennrate Ihres Fehlerbudgets einrichten. Die Benachrichtigungsrichtlinien werden nicht im Detail behandelt. Es wird vorausgesetzt, dass Sie die grundlegenden Konzepte der Bedingungen und Benachrichtigungskanäle bereits kennen. Allgemeine Informationen zu Benachrichtigungsrichtlinien und deren Erstellung finden Sie unter Einführung in Benachrichtigungen.

Brennrate des Fehlerbudgets

Ihr Fehlerbudget für einen Compliance-Zeitraum beträgt 100 % – SLO %. Wenn Ihr SLO 95 % beträgt, liegt Ihr Fehlerbudget bei 5 % Ihrer Leistung. Die Brennrate gibt an, wie schnell das Fehlerbudget verbraucht wird. Weitere Informationen finden Sie unter Fehlerbudgets.

Der Messwert für die Brennrate wird vom Zeitachsenselektor select_slo_burn_rate abgerufen. Eine Benachrichtigungsrichtlinie für die Burn-Rate benachrichtigt Sie, wenn Ihr Fehlerbudget schneller als gewöhnlich aufgebraucht ist.

Es gibt noch weitere Zeitachsenselektoren. Weitere Informationen finden Sie unter SLO-Daten abrufen. Sie können Benachrichtigungsrichtlinien erstellen, die einige dieser Zeitachsenselektoren verwenden. Sie müssen diese jedoch mithilfe der Cloud Monitoring API erstellen.

Übersicht: Benachrichtigungsrichtlinie für ein SLO erstellen

Die Erstellung einer Benachrichtigungsrichtlinie für ein SLO ähnelt der Erstellung einer Benachrichtigungsrichtlinie für andere Messwerte.

In diesem Abschnitt gehen wir auf die allgemeinen Schritte ein, die in den folgenden Abschnitten ausführlicher beschrieben werden.

So erstellen Sie eine Benachrichtigungsrichtlinie für ein SLO:

  1. Ermitteln Sie das SLO, auf dem die Benachrichtigungsrichtlinie basieren soll.

  2. Erstellen Sie eine Bedingung für Ihre Benachrichtigungsrichtlinie, die das ausgewählte SLO verwendet. Die Bedingung ist, dass Sie die Zeitachsenselektor verwenden, um die Daten für das SLO abzurufen. Wenn Sie beispielsweise den Zeitachsenselektor für die Brennrate verwenden, spiegeln die abgerufenen Daten die Brennrate des Fehlerbudgets für das ausgewählte SLO wider.

    In dieser Bedingung legen Sie außerdem den Schwellenwert und die Dauer der Verstöße gegen das SLO fest, bevor eine Benachrichtigung ausgelöst wird. Beispiel: Sie möchten, dass die Brennrate mit einem bestimmten Wert für einen bestimmten Zeitraum über der gewünschten Rate liegt, bevor eine Warnung ausgelöst wird. Der Wert für "ein Wert über" ist der Schwellenwert der Bedingung und der Wert für "ein bestimmter Zeitraum" ist die Dauer der Bedingung.

  3. Ermitteln oder erstellen Sie einen Benachrichtigungskanal, der in Ihren Benachrichtigungsrichtlinien verwendet werden soll.

  4. Stellen Sie eine Dokumentation bereit, die den Nutzern erklärt, was die Benachrichtigungsrichtlinie ausgelöst hat

  5. Stellen Sie diese Einzelteile in einem Aufruf zusammen, um eine Benachrichtigungsrichtlinie zu erstellen.

Allgemeine Informationen zu Benachrichtigungsrichtlinien und deren Erstellung finden Sie unter Einführung in Benachrichtigungen.

Benachrichtigungsrichtlinien und Lookback-Zeiträume

Geben Sie eine Kennung für das SLO und einen Lookback-Zeitraum an, wenn Sie die SLO-Daten mit einem Zeitachsenselektor abrufen. Der Lookback-Zeitraum bestimmt, wie weit zurückliegende Daten abgerufen werden. Der Lookback-Zeitraum wird verwendet, um festzustellen, welche Werte für diesen Zeitraum normal sind.

Wenn Sie eine Warnung für den Verbrauch des Fehlerbudgets pro Tag ausgeben möchten, wählen Sie einen Lookback-Zeitraum von 24 Stunden aus. Wenn Sie eine Benachrichtigung über den Verbrauch pro Stunde senden möchten, wählen Sie einen Lookback-Zeitraum von einer Stunde aus.

Arten von Fehlerbudgetbenachrichtigungen

Bei der Einrichtung von Benachrichtigungsrichtlinien zur Beobachtung Ihres Fehlerbudgets empfiehlt es sich, zwei Benachrichtigungsrichtlinien einzurichten:

  • Eine Fast-Burn-Benachrichtigung, die Sie bei einer plötzlichen großen Verbrauchsänderung warnt, die Ihr Fehlerbudget schnell ausschöpft, wenn sie nicht korrigiert wird. "Bei dieser Rate wird das Fehlerbudget des gesamten Monats in zwei Tagen aufgebraucht!"

    Für eine Situation wie diese ist eine kürzere Lookback-Dauer sinnvoll. Sie möchten wissen, ob eine potenziell katastrophale Situation bestand und bestehen blieb – auch wenn dies nur für kurze Zeit der Fall war. Wenn die Lage tatsächlich katastrophal ist, möchten Sie das natürlich so schnell wie möglich wissen.

    Der Schwellenwert für eine Benachrichtigung über die Verbrauchsrate ist hierbei deutlich höher als der gewünschte Basiswert für den Lookback-Zeitraum.

  • Eine Slow-Burn-Benachrichtigung, die Sie vor einer Verbrauchsrate warnt, die Ihr Fehlerbudget vor Ablauf des Compliance-Zeitraums ausschöpft, falls sie nicht geändert wird. Dieser Bedingungstyp ist weniger dringend als eine Fast-Burn-Bedingung. "Wir sind leicht über dem Punkt, an dem wir zu diesem Zeitpunkt des Monats sein möchten, aber wir sind noch nicht in großen Schwierigkeiten."

    Für eine Slow-Burn-Bedingung ist eine längere Lookback-Dauer sinnvoll, um Schwankungen im kurzfristigen Verbrauch auszugleichen.

    Der Schwellenwert für eine Benachrichtigung über die Verbrauchsrate ist hierbei höher als der Basiswert für den Lookback-Zeitraum, aber nicht viel höher. Wenn der Verbrauch sich langfristig ausgleicht, würde eine Richtlinie, die auf einem kürzeren Lookback-Zeitraum mit einem hohen Schwellenwert beruht, unter Umständen zu vielen nicht benötigten Benachrichtigungen führen. Wenn der Verbrauch jedoch über einen längeren Zeitraum etwas zu hoch bleibt, verbraucht er letztendlich Ihr gesamtes Fehlerbudget.

SLO-Benachrichtigung erstellen: API

Die Benachrichtigungsrichtlinien für die Brennrate Ihres Fehlerbudgets basieren auf dem Zeitachsenselektor select_slo_burn_rate, der unter SLO-Daten abrufen beschrieben wird. Es gibt noch weitere Zeitachsenselektoren, von denen Sie einige als Basis für Benachrichtigungsrichtlinien verwenden können.

Sie erstellen Benachrichtigungsrichtlinien mit der Methode alertPolicies.create. Eine Dokumentation zur allgemeinen Verwendung dieser Methode finden Sie unter Benachrichtigungsrichtlinien verwalten.

Die Benachrichtigungsrichtlinien für SLOs ähneln in vielerlei Hinsicht anderen Benachrichtigungsrichtlinien: Sie sind Benachrichtigungsrichtlinien mit einer Schwellenwertbedingung. Es gibt einen spezifischen Unterschied zu anderen Benachrichtigungsrichtlinien: Die filter in der Spezifikation MetricThreshold der Bedingung verwendet einen Zeitachsenselektor anstelle eines Messwertpaars und überwachter Ressourcentypen.

Bedingungen für SLO-basierte Benachrichtigungsrichtlinien

Eine Benachrichtigungsrichtlinie muss mindestens eine Bedingung aufweisen. Verwenden Sie für eine SLO-basierte Bedingung eine Bedingung vom Typ "[MetricThreshold]".

Eine Grenzmesswertbedingung kann zwei Paare von Zeitachsenkonfigurationen enthalten: filter und aggregations, und für die Erstellung von Verhältnissen auch denominatorFilter und denominatorAggregations. Da SLO-Daten nicht mithilfe der Standardüberwachungsfilter abgerufen werden, ist das Feld, das in einer Bedingung für ein SLO verwendet wird, das Feld filter.

Eine Bedingung für ein SLO legt die Felder comparison, thresholdValue, duration und trigger fest.

In diesem Beispiel wird eine Bedingung erstellt, gegen die verstoßen wird, wenn die Brennrate das Doppelte der normalen Rate überschreitet. Die Struktur sieht so aus:

      "conditions": [
        {
          "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
          "conditionThreshold": {
            "filter": [TO_BE_DETERMINED],
            "comparison":"COMPARISON_GT",
            "thresholdValue": 2,
            "duration": {
              "seconds":"0",
            },
          },
        }
      ],
    

Zum Festlegen des Feldes filter ist der Ressourcenname eines bestimmten SLO erforderlich. Dieser Wert hat die Form projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}. Informationen zur Suche nach der SLO-ID finden Sie in der SLO-Liste.

Verwenden Sie den Zeitachsenselektor select_slo_burn_rate, um eine Benachrichtigung für die Brennrate zu erstellen. Dieser Selektor verwendet zwei Werte: das Ziel-SLO und den Lookback-Zeitraum. Weitere Informationen finden Sie unter select_slo_burn_rate.

Der folgende Filter ermittelt beispielsweise die Brennrate des Ziel-SLO mit einem Lookback-Zeitraum von einer Stunde:

"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"

Der Rest der Benachrichtigungsrichtlinie

Um die Benachrichtigungsrichtlinie fertigzustellen, geben Sie Werte für die verbleibenden Felder an:

  • displayName: Eine Beschreibung der Benachrichtigungsrichtlinie.
  • combiner: Beschreibt die Logik zum Kombinieren von Bedingungen. Diese Richtlinie hat nur eine Bedingung, daher funktioniert entweder AND oder OR.
  • notificationChannels: Ein Array vorhandener Benachrichtigungskanäle, die beim Auslösen der Benachrichtigungsrichtlinie verwendet werden sollen. Informationen zum Suchen und Erstellen von Benachrichtigungskanälen finden Sie unter Benachrichtigungskanäle.
  • documentation: Informationen, die gesendet werden, wenn die Bedingung verletzt wird, damit die Empfänger das Problem diagnostizieren können. Weitere Informationen finden Sie unter Documentation.

Benachrichtigungsrichtlinie erstellen

Im folgenden Beispiel wird die API verwendet, um eine Benachrichtigungsrichtlinie für die Brennrate zu erstellen. Informationen zum Auflisten, Ändern und Löschen von Benachrichtigungsrichtlinien finden Sie unter Benachrichtigungsrichtlinien mit der API verwalten.

Protokoll

Um die Benachrichtigungsrichtlinie mithilfe von curl zu erstellen, senden Sie eine POST-Nachricht an den https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies-Endpunkt und geben die Benachrichtigungsrichtlinie im Anfragetext an. Das JSON-Element im Anforderungstext beschreibt eine Benachrichtigungsrichtlinie, die eine Schwellenwertbedingung basierend auf dem Zeitachsenselektor select_slo_burn_rate mit einem Lookback-Zeitraum von 1 Stunde verwendet.

  1. Erstellen Sie eine Variable, die den Anfragetext enthält:

    CREATE_ALERT_POST_BODY=$(cat <<EOF
        {
          "displayName":"SLO burn-rate alert for ${SLO_ID} with a threshold of 2",
          "combiner":"AND",
          "conditions": [
            {
              "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
              "conditionThreshold": {
                "filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")",
                "comparison":"COMPARISON_GT",
                "thresholdValue": 2,
                "duration": {
                  "seconds":"0",
                },
              },
            }
          ],
          "notificationChannels": ["${NOTIFICATION_CHANNEL}", ],
          "documentation": {
             "content": "SLO burn for the past 60m exceeded twice the normal budget burn rate.",
             "mime_type": "text/markdown",
          },
        }
        EOF
        )
        
  2. Posten Sie die Anfrage an den Endpunkt:

    curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d "${CREATE_ALERT_POST_BODY}}" https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies
        

SLO-basierte Benachrichtigungsrichtlinien mit der Konsole erstellen

Informationen zu SLO-basierten Benachrichtigungsrichtlinien in Anthos Service Mesh finden Sie in der Anthos Service Mesh-Dokumentation: Eine Benachrichtigungsrichtlinie für ein SLO erstellen.