Beispielrichtlinien in JSON

Dieses Dokument enthält Beispiele für Benachrichtigungsrichtlinien. Die Beispiele sind im JSON-Format geschrieben und verwenden Monitoring-Filter. Sie können Richtlinien entweder in JSON oder in YAML erstellen, unabhängig davon, ob Sie die Richtlinie mit Monitoring-Filtern oder Monitoring Query Language (MQL) definieren. Die Google Cloud CLI kann sowohl JSON als auch YAML lesen und schreiben, während die REST API JSON lesen kann.

Beispiele für Benachrichtigungsrichtlinien, die MQL verwenden, finden Sie in den folgenden Dokumenten:

Informationen zum Konfigurieren von Feldern für Benachrichtigungsrichtlinien finden Sie hier:

YAML für vorhandene Richtlinien generieren

Wenn Sie YAML-Darstellungen Ihrer vorhandenen Benachrichtigungsrichtlinien generieren möchten, verwenden Sie den Befehl gcloud alpha monitoring policies list, um die Richtlinien aufzulisten, und den Befehl gcloud alpha monitoring policies describe, um die Richtlinie auszugeben.

Verwenden Sie zum Generieren von YAML-Darstellungen Ihrer vorhandenen Benachrichtigungskanäle den Befehl gcloud alpha monitoring channels list, um Ihre Kanäle aufzulisten, und den Befehl gcloud alpha monitoring channels describe, um die Kanalkonfiguration auszugeben.

Wenn Sie das Flag --format nicht in die Google Cloud CLI-Befehle einfügen, wird für beide gcloud ... describe-Befehle standardmäßig das Format YAML verwendet.

Mit dem folgenden gcloud alpha monitoring policies describe-Befehl wird beispielsweise eine einzelne Richtlinie namens projects/a-gcp-project/alertPolicies/12669073143329903307 abgerufen und die Weiterleitung (>) kopiert die Ausgabe in die Datei test-policy.yaml:

gcloud alpha monitoring policies describe projects/a-gcp-project/alertPolicies/12669073143329903307 > test-policy.yaml

JSON für vorhandene Richtlinien generieren

Führen Sie einen der folgenden Schritte aus, um JSON-Darstellungen Ihrer vorhandenen Benachrichtigungsrichtlinien und Benachrichtigungskanäle zu generieren:

Richtlinienbeispiele

Wie im Beispiel zum Sichern/Wiederherstellen gezeigt, können Sie gespeicherte Richtlinien verwenden, um neue Kopien dieser Richtlinien zu erstellen.

Sie können eine in einem Projekt gespeicherte Richtlinie zum Erstellen einer neuen oder ähnlichen Richtlinie in einem anderen Projekt verwenden. Allerdings müssen Sie zuvor folgende Änderungen in einer Kopie der gespeicherten Richtlinie vornehmen:

  • Entfernen Sie die folgenden Felder aus allen Benachrichtigungskanälen:
    • name
    • verificationStatus
  • Erstellen Sie die Benachrichtigungskanäle, bevor Sie in den Benachrichtigungsrichtlinien darauf verweisen. Es müssen die neuen Kanalkennzeichnungen verwendet werden.
  • Entfernen Sie die folgenden Felder aus allen Benachrichtigungsrichtlinien, die Sie neu erstellen:
    • name
    • condition.name
    • creationRecord
    • mutationRecord

Die Richtlinien in diesem Dokument sind mit derselben Terminologie organisiert, die auch Monitoring in der Google Cloud Console verwendet, z. B. „Änderungsratenrichtlinie“. Es gibt zwei Arten von Bedingungen:

  • Eine Schwellenwertbedingung; fast alle in der UI genannten Richtlinientypen sind Varianten einer Schwellenwertbedingung.
  • Eine Abwesenheitsbedingung

In den folgenden Beispielen entsprechen diese Bedingungen conditionThreshold und conditionAbsent. Weitere Informationen finden Sie auf der Referenzseite für Condition.

Viele dieser Richtlinien lassen sich mithilfe der Google Cloud Console manuell erstellen. Einige lassen sich jedoch nur mit der Monitoring API erstellen. Weitere Informationen finden Sie unter Benachrichtigungsrichtlinie (UI) erstellen und Benachrichtigungsrichtlinien mithilfe der API erstellen.

Messwertschwellenrichtlinie

Eine Messwertschwellenrichtlinie erkennt, wenn ein Wert einen vordefinierten Grenzwert überschreitet. Schwellenrichtlinien weisen darauf hin, dass sich etwas einem wichtigen Punkt nähert, sodass Sie Maßnahmen einleiten können. Beispielsweise ist die Bedingung für eine Messwertschwellenrichtlinie erfüllt, wenn der verfügbare Speicherplatz weniger als 10 % des gesamten Speicherplatzes ausmacht.

Die folgende Benachrichtigungsrichtlinie verwendet die durchschnittliche CPU-Nutzung als Indikator für den Zustand einer Gruppe von VMs. Die Bedingung der Richtlinie ist erfüllt, wenn die durchschnittliche CPU-Auslastung der VMs in einem Projekt, gemessen in 60-Sekunden-Intervallen, 15 Minuten (900 Sekunden) lang einen Schwellenwert von 90 % Auslastung überschreitet:

{
    "displayName": "Very high CPU usage",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "CPU usage is extremely high",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "60s",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [
                            "project"
                        ],
                        "perSeriesAligner": "ALIGN_MAX"
                    }
                ],
                "comparison": "COMPARISON_GT",
                "duration": "900s",
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
                          AND resource.type=\"gce_instance\"",
                "thresholdValue": 0.9,
                "trigger": {
                    "count": 1
                }
            }
        }
    ],
}

Richtlinie für fehlenden Messwert

Eine Bedingung für fehlende Messwerte ist erfüllt, wenn innerhalb des im Feld duration definierten Zeitraums keine Daten für einen Messwert geschrieben werden.

Eine Möglichkeit, dies zu zeigen, ist das Erstellen eines benutzerdefinierten Messwerts.

Hier ein Beispieldeskriptor für einen benutzerdefinierten Messwert. Sie könnten den Messwert mit dem APIs Explorer erstellen.

{
  "description": "Number of times the pipeline has run",
  "displayName": "Pipeline runs",
  "metricKind": "GAUGE",
  "type": "custom.googleapis.com/pipeline_runs",
  "labels": [
    {
      "description": "The name of the pipeline",
      "key": "pipeline_name",
      "valueType": "STRING"
    },
  ],
  "unit": "1",
  "valueType": "INT64"
}

Weitere Informationen finden Sie unter Benutzerdefinierte Messwerte – Übersicht.

Die Bedingung in der folgenden Benachrichtigungsrichtlinie ist erfüllt, wenn für einen Zeitraum von etwa einer Stunde nicht mehr Daten in den Messwert geschrieben werden, d. h., die stündliche Pipeline konnte nicht ausgeführt werden. Die hier verwendete Bedingung ist conditionAbsent.

{
    "displayName": "Data ingestion functioning",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Hourly pipeline is up",
            "conditionAbsent": {
                "duration": "3900s",
                "filter": "resource.type=\"global\"
                          AND metric.type=\"custom.googleapis.com/pipeline_runs\"
                          AND metric.label.pipeline_name=\"hourly\"",
            }
        }
    ],
}

Prognoserichtlinie

Eine Prognosebedingung ist erfüllt, wenn Folgendes eintritt:

  • Alle Prognosen für eine Zeitreihe sind innerhalb des durch das Feld duration definierten Zeitraums identisch.
  • Cloud Monitoring prognostiziert, dass die Zeitreihe gegen den Grenzwert innerhalb des Prognosezeitraums verstößt.

Eine Prognosebedingung ist eine Bedingung für Messwertschwellen, die für die Verwendung von Prognosen konfiguriert ist. Wie im folgenden Beispiel dargestellt, enthalten diese Bedingungen das Feld forecastOptions, das Prognosen ermöglicht und den Prognosehorizont angibt. Im folgenden Beispiel ist der Prognosezeitraum auf eine Stunde festgelegt. Dies ist der Mindestwert:

{
    "displayName": "NFS free bytes alert",
    "combiner": "OR",
    "conditions": [
      {
        "displayName": "Filestore Instance - Free disk space percent",
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "300s",
              "perSeriesAligner": "ALIGN_MEAN"
            }
          ],
          "comparison": "COMPARISON_LT",
          "duration": "900s",
          "filter": "resource.type = \"filestore_instance\" AND metric.type = \"file.googleapis.com/nfs/server/free_bytes_percent\"",
          "forecastOptions": {
            "forecastHorizon": "3600s"
          },
          "thresholdValue": 20,
          "trigger": {
            "count": 1
          }
        }
      }
    ],
}

Änderungsratenrichtlinie

Bedingungen für die Änderungsrate sind erfüllt, wenn die Werte in einer Zeitachse mindestens um den durch den Schwellenwert angegebenen Prozentsatz ansteigen oder sinken. Wenn Sie diese Art von Bedingung erstellen, wird vor dem Vergleich mit dem Schwellenwert eine Berechnung des Prozentsatzes der Änderung auf die Zeitachse angewendet.

Die Bedingung ermittelt den Durchschnitt der Werte des Messwerts aus den letzten 10 Minuten und vergleicht dann das Ergebnis mit dem 10-Minuten-Durchschnitt, der kurz vor Beginn des Ausrichtungszeitraums gemessen wurde. Das 10-Minuten-Zeitfenster für Vergleiche in einer Benachrichtigungsrichtlinie für die Änderungsrate kann nicht geändert werden. Sie geben den Ausrichtungszeitraum jedoch beim Erstellen der Bedingung an.

Diese Benachrichtigungsrichtlinie überwacht, ob die CPU-Auslastung schnell ansteigt:

{
  "displayName": "High CPU rate of change",
  "combiner": "OR",
  "conditions": [
    {
      "displayName": "CPU usage is increasing at a high rate",
      "conditionThreshold": {
         "aggregations": [
           {
             "alignmentPeriod": "900s",
             "perSeriesAligner": "ALIGN_PERCENT_CHANGE",
           }],
        "comparison": "COMPARISON_GT",
        "duration": "180s",
        "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
        "thresholdValue": 0.5,
        "trigger": {
          "count": 1
         }
      }
    }
  ],
}

Gruppenaggregationsrichtlinie

Diese Benachrichtigungsrichtlinie überwacht, ob die durchschnittliche CPU-Auslastung in einem Google Kubernetes Engine-Cluster einen Grenzwert überschreitet:

{
    "displayName": "CPU utilization across GKE cluster exceeds 10 percent",
    "combiner": "OR",
    "conditions": [
         {
            "displayName": "Group Aggregate Threshold across All Instances in Group GKE cluster",
            "conditionThreshold": {
                "filter": "group.id=\"3691870619975147604\" AND metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
                "comparison": "COMPARISON_GT",
                "thresholdValue": 0.1,
                "duration": "300s",
                "trigger": {
                    "count": 1
                },
                "aggregations": [
                    {
                        "alignmentPeriod": "60s",
                        "perSeriesAligner": "ALIGN_MEAN",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [
                              "project"
                        ]
                    },
                    {
                        "alignmentPeriod": "60s",
                        "perSeriesAligner": "ALIGN_SUM",
                        "crossSeriesReducer": "REDUCE_MEAN"
                    }
                ]
            },
        }
    ],
}

Diese Richtlinie geht davon aus, dass folgende Gruppe existiert:

    {
        "name": "projects/a-gcp-project/groups/3691870619975147604",
        "displayName": "GKE cluster",
        "filter": "resource.metadata.name=starts_with(\"gke-kuber-cluster-default-pool-6fe301a0-\")"
    }

Zum Ermitteln der entsprechenden Felder für Ihre Gruppen listen Sie Ihre Gruppendetails mithilfe des API-Explorers auf der Referenzseite "project.groups.list" auf.

Verfügbarkeitsdiagnosenrichtlinie

Der Status von Verfügbarkeitsdiagnosen wird auf der Seite Verfügbarkeitsdiagnosen angezeigt. Sie können jedoch eine Benachrichtigungsrichtlinie konfigurieren, sodass Cloud Monitoring Ihnen eine Benachrichtigung sendet, wenn die Verfügbarkeitsdiagnose fehlschlägt.

Im folgenden JSON-Format wird beispielsweise eine HTTPS-Verfügbarkeitsdiagnose auf der Google Cloud-Website beschrieben. Die Benachrichtigungsrichtlinie prüft die Verfügbarkeit alle fünf Minuten.

Die Verfügbarkeitsdiagnose wurde mit der Google Cloud Console erstellt. Die JSON-Darstellung wurde dadurch erstellt, dass die Verfügbarkeitsdiagnosen im Projekt mithilfe der Monitoring API aufgelistet wurden (siehe uptimeCheckConfigs.list). Sie können Verfügbarkeitsdiagnosen auch mit der Monitoring API erstellen.

{
    "name": "projects/a-gcp-project/uptimeCheckConfigs/uptime-check-for-google-cloud-site",
    "displayName": "Uptime check for Google Cloud site",
    "monitoredResource": {
        "type": "uptime_url",
        "labels": {
            "host": "cloud.google.com"
      }
    },
    "httpCheck": {
        "path": "/index.html",
        "useSsl": true,
        "port": 443,
        "authInfo": {}
    },
    "period": "300s",
    "timeout": "10s",
    "contentMatchers": [
        {}
    ]
}

Wenn Sie eine Benachrichtigungsrichtlinie für eine Verfügbarkeitsdiagnose erstellen, verweisen Sie auf die Verfügbarkeitsdiagnose anhand ihrer UPTIME_CHECK_ID. Diese ID wird beim Erstellen der Diagnose festgelegt. Sie wird als letzte Komponente des Feldes name angezeigt und ist in der Benutzeroberfläche als Check ID in der Konfigurationsübersicht sichtbar. Wenn Sie die Monitoring API verwenden, wird die ID von der Methode uptimeCheckConfigs.create zurückgegeben.

Die ID stammt aus dem displayName, der in diesem Fall in der UI festgelegt wurde. Er kann dadurch verifiziert werden, dass die Verfügbarkeitsdiagnosen aufgelistet und der name beachtet wird.

Die ID für die oben beschriebene Verfügbarkeitsdiagnose ist uptime-check-for-google-cloud-site.

Die Bedingung der folgenden Benachrichtigungsrichtlinie ist erfüllt, wenn die Verfügbarkeitsdiagnose fehlschlägt oder das SSL-Zertifikat auf der Google Cloud-Website in weniger als 15 Tagen abläuft. Wenn eine der Bedingungen erfüllt ist, sendet Monitoring eine Benachrichtigung an den angegebenen Benachrichtigungskanal:

{
    "displayName": "Google Cloud site uptime failure",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Failure of uptime check_id uptime-check-for-google-cloud-site",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "1200s",
                        "perSeriesAligner": "ALIGN_NEXT_OLDER",
                        "crossSeriesReducer": "REDUCE_COUNT_FALSE",
                        "groupByFields": [ "resource.label.*" ]
                    }
                ],
                "comparison": "COMPARISON_GT",
                "duration": "600s",
                "filter": "metric.type=\"monitoring.googleapis.com/uptime_check/check_passed\"
                          AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"
                          AND resource.type=\"uptime_url\"",
                "thresholdValue": 1,
                "trigger": {
                    "count": 1
                }
            }
        },
        {
            "displayName": "SSL Certificate for google-cloud-site expiring soon",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "1200s",
                        "perSeriesAligner": "ALIGN_NEXT_OLDER",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [ "resource.label.*" ]
                    }
                ],
                "comparison": "COMPARISON_LT",
                "duration": "600s",
                "filter": "metric.type=\"monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires\"
                          AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"
                          AND resource.type=\"uptime_url\"",
                "thresholdValue": 15,
                "trigger": {
                    "count": 1
                }
            }
        }
    ],
}

Der Filter in der Bedingung gibt den Messwert an, der anhand seines Typs und Labels überwacht wird. Die Messwerttypen sind monitoring.googleapis.com/uptime_check/check_passed und monitoring.googleapis.com/uptime_check/time_until_ssl_cert_expires. Das Messwertlabel gibt die spezifische Verfügbarkeitsdiagnose an, die beobachtet wird. In diesem Beispiel enthält das Labelfeld check_id die ID der Verfügbarkeitsdiagnose.

AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"

Weitere Informationen finden Sie unter Monitoring-Filter.

Prozessintegritätsrichtlinie

Eine Prozessintegritätsrichtlinie sendet eine Benachrichtigung, wenn die Anzahl der Prozesse, die einem Muster entsprechen, einen Schwellenwert überschreitet. So können Sie beispielsweise feststellen, ob ein Prozess nicht mehr läuft.

Diese Benachrichtigungsrichtlinie veranlasst Monitoring, eine Benachrichtigung an den angegebenen Benachrichtigungskanal zu senden, wenn seit mehr als 5 Minuten kein Prozess verfügbar war, der mit dem String nginx übereinstimmt und als Nutzer www ausgeführt wird:

{
    "displayName": "Server health",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Process 'nginx' is not running",
            "conditionThreshold": {
                "filter": "select_process_count(\"has_substring(\\\"nginx\\\")\", \"www\") AND resource.type=\"gce_instance\"",
                "comparison": "COMPARISON_LT",
                "thresholdValue": 1,
                "duration": "300s"
            }
        }
    ],
}

Weitere Informationen finden Sie unter Prozessintegrität.

Messwertverhältnis

Wir empfehlen, mit Monitoring Query Language (MQL) verhältnisbasierte Benachrichtigungsrichtlinien zu erstellen. Obwohl die Cloud Monitoring API das Erstellen einiger filterbasierter Verhältnisse unterstützt, bietet MQL eine flexiblere und robustere Lösung:

In diesem Abschnitt wird ein filterbasiertes Verhältnis beschrieben. Mit der API können Sie eine Richtlinie erstellen und anzeigen, die das Verhältnis von zwei zugehörigen Messwerten berechnet und ausgelöst wird, wenn dieses Verhältnis einen Schwellenwert überschreitet. Die zugehörigen Messwerte müssen denselben MetricKind haben. Sie können beispielsweise eine verhältnisbasierte Benachrichtigungsrichtlinie erstellen, wenn beide Messwerte Messwerte sind. Informationen zum Ermitteln des MetricKind eines Messwerttyps finden Sie in der Messwertliste.

Eine Verhältnisbedingung ist eine Variante einer Messwertschwellenbedingung, bei der die Bedingung in einer Verhältnisrichtlinie zwei Filter verwendet: das übliche filter, das als Zähler des Verhältnisses dient, und ein denominatorFilter, das als Nenner des Verhältnisses fungiert.

Die Zeitachsen aus beiden Filtern müssen auf die gleiche Weise aggregiert werden, sodass die Berechnung des Verhältnisses der Werte aussagekräftig ist. Die Bedingung der Benachrichtigungsrichtlinie ist erfüllt, wenn das Verhältnis der Filter gegen einen Schwellenwert für den Zeitraum verstößt, der durch das Feld duration definiert ist.

Im nächsten Abschnitt wird beschrieben, wie Sie eine Benachrichtigungsrichtlinie konfigurieren, die das Verhältnis von HTTP-Fehlerantworten zur Gesamtzahl der HTTP-Antworten überwacht.

Verhältnis von HTTP-Fehlern

Die folgende Benachrichtigungsrichtlinie hat eine Schwellenwertbedingung, die auf dem Verhältnis der Anzahl der HTTP-Fehlerantworten zur Anzahl aller HTTP-Antworten basiert.

{
    "displayName": "HTTP error count exceeds 50 percent for App Engine apps",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Ratio: HTTP 500s error-response counts / All HTTP response counts",
            "conditionThreshold": {
                 "filter": "metric.label.response_code>=\"500\" AND
                            metric.label.response_code<\"600\" AND
                            metric.type=\"appengine.googleapis.com/http/server/response_count\" AND
                            project=\"a-gcp-project\" AND
                            resource.type=\"gae_app\"",
                 "aggregations": [
                    {
                        "alignmentPeriod": "300s",
                        "crossSeriesReducer": "REDUCE_SUM",
                        "groupByFields": [
                          "project",
                          "resource.label.module_id",
                          "resource.label.version_id"
                        ],
                        "perSeriesAligner": "ALIGN_DELTA"
                    }
                ],
                "denominatorFilter": "metric.type=\"appengine.googleapis.com/http/server/response_count\" AND
                                      project=\"a-gcp-project\" AND
                                      resource.type=\"gae_app\"",
                "denominatorAggregations": [
                   {
                      "alignmentPeriod": "300s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "project",
                        "resource.label.module_id",
                        "resource.label.version_id"
                       ],
                      "perSeriesAligner": "ALIGN_DELTA",
                    }
                ],
                "comparison": "COMPARISON_GT",
                "thresholdValue": 0.5,
                "duration": "0s",
                "trigger": {
                    "count": 1
                }
            }
        }
    ]
}

Messwert und Ressourcentypen

Der Messwerttyp für diese Richtlinie lautet appengine.googleapis.com/http/server/response_count und hat zwei Labels:

  • response_code, eine 64-Bit-Ganzzahl, die den HTTP-Statuscode für die Anfrage darstellt. Mit dieser Richtlinie werden Zeitachsendaten für dieses Label gefiltert, sodass Folgendes ermittelt werden kann:
    • Die Anzahl der erhaltenen Antworten.
    • Die Anzahl der erhaltenen Fehlerantworten.
    • Das Verhältnis von Fehlerantworten zu allen Antworten.
  • loading, ein boolescher Wert, der angibt, ob die Anfrage geladen wurde. Das Label loading ist in dieser Benachrichtigungsrichtlinie irrelevant.

Die Benachrichtigungsrichtlinie wertet Antwortdaten von App Engine-Anwendungen aus, d. h. Daten, die vom Typ der überwachten Ressource gae_app stammen. Diese überwachte Ressource hat drei Labels:

  • project_id, die ID für das Google Cloud-Projekt.
  • module_id, der Name des Dienstes oder Moduls in der App.
  • version_id, die Version der App.

Referenzinformationen zu diesen Messwert- und überwachten Ressourcentypen finden Sie unter App Engine-Messwerte in der Liste der Messwerte und im gae_app-Eintrag in der Liste der beobachteten Ressourcen.

Was bewirkt diese Richtlinie?

Diese Bedingung berechnet das Verhältnis der Fehlerantworten zu den Antworten insgesamt. Die Bedingung ist erfüllt, wenn das Verhältnis während des 5-minütigen Ausrichtungszeitraums größer als 50 % ist (d. h. das Verhältnis größer als 0,5 ist).

Diese Richtlinie erfasst das Modul und die Version der App, die gegen die Bedingung verstößt, indem die Zeitachsen in jedem Filter nach den Werten dieser Labels gruppiert werden.

  • Der Filter in der Bedingung untersucht HTTP-Antworten von einer App Engine-Anwendung und wählt die Antworten im Fehlerbereich 5xx aus. Das ist der Zähler im Verhältnis.
  • Der Nennerfilter in der Bedingung berücksichtigt alle HTTP-Antworten von einer App Engine-Anwendung.

Die Bedingung ist erfüllt und Monitoring sendet sofort eine Benachrichtigung für den neuen Vorfall. Der zulässige Zeitraum für das Feld duration in der Bedingung beträgt null Sekunden. Diese Bedingung verwendet eine trigger-Anzahl von eins, also die Anzahl der Zeitachsen, die gegen die Bedingung verstoßen müssen, um den Vorfall zu verursachen. Bei einer App Engine-Anwendung mit einem einzelnen Dienst ist die Anzahl von trigger in Ordnung. Wenn Sie eine App mit 20 Diensten haben und einen Vorfall verursachen möchten, wenn mindestens drei Dienste gegen die Bedingung verstoßen, verwenden Sie für trigger den Wert 3.

Verhältnis einrichten

Die Zähler- und Nennerfilter sind genau gleich, nur dass der Bedingungsfilter im Zähler mit den Antwortcodes im Fehlerbereich übereinstimmt und der Bedingungsfilter im Nenner mit allen Antwortcodes. Die folgenden Klauseln werden nur in der Zählerbedingung angezeigt:

      metric.label.response_code>=\"500\" AND
      metric.label.response_code<\"600\"

Andernfalls sind Zähler und Nenner identisch.

Die von jedem Filter ausgewählte Zeitreihe muss auf die gleiche Weise aggregiert werden, damit die Berechnung des Verhältnisses gültig ist. Jeder Filter kann mehrere Zeitachsen erfassen, da es für jede Kombination von Werten für Labels eine andere Zeitachse gibt. Diese Richtlinie gruppiert die Zeitachsen nach angegebenen Ressourcenlabels, die die Zeitachse in eine Gruppe von Gruppen partitionieren. Einige Zeitachsen in jeder Gruppe entsprechen dem Zählerfilter. Der Rest entspricht dem Nennerfilter.

Zum Berechnen eines Verhältnisses muss der Satz von Zeitachsen, die mit dem jeweiligen Filter übereinstimmen, jeweils zu einer einzigen Zeitachse zusammengefasst werden. Dadurch bleibt jede Gruppe zwei Zeitreihen erhalten, eine für den Zähler und eine für den Nenner. Als Nächstes kann das Verhältnis der Punkte in den Zähler- und Nennerzeitachsen in jeder Gruppe berechnet werden.

In dieser Richtlinie werden die Zeitachsen für beide Filter wie folgt aggregiert:

  • Jeder Filter erstellt eine Reihe von Zeitachsen, die in 5-Minuten-Intervallen ausgerichtet sind. Die Werte stellen die Berechnung von ALIGN_DELTA für die Werte in diesem 5-minütigen Ausrichtungszeitraum dar. Dieser Aligner gibt die Anzahl der übereinstimmenden Antworten in diesem Ausrichtungszeitraum als 64-Bit-Ganzzahl zurück.

  • Die Zeitachsen innerhalb eines jeden Filters werden ebenfalls nach den Werten der Ressourcenlabels für Modul und Version gruppiert, sodass jede Gruppe zwei Gruppen von ausgerichteten Zeitachsen enthält, die mit dem Zählerfilter und die mit dem Nennerfilter übereinstimmen.

  • Die Zeitachsen innerhalb jeder Gruppe, die dem Zähler- oder Nennerfilter entsprechen, werden durch Summieren der Werte in den einzelnen Zeitachsen mithilfe des REDUCER_SUM-Reduzierers reduziert. Dies führt zu einer Zeitachse für den Zähler und einer für den Nenner, die jeweils die Anzahl der Antworten für alle übereinstimmenden Zeitachsen im Ausrichtungszeitraum angeben.

Die Richtlinie berechnet dann für die Zähler- und Nennerzeitachsen, die jede Gruppe darstellen, das Verhältnis der Werte. Die Bedingung für die Benachrichtigungsrichtlinie ist erfüllt, wenn das Verhältnis größer als 50 % ist.