Dieses Dokument enthält Beispiele für Benachrichtigungsrichtlinien. Die Beispiele sind geschrieben in JSON und verwenden Monitoring-Filter. Sie können im JSON- oder YAML-Format, unabhängig davon, ob Sie die Richtlinie mit Monitoring-Filtern oder Monitoring Query Language (MQL). Die Google Cloud CLI kann sowohl JSON- als auch YAML-Dateien lesen und schreiben. Die REST API kann hingegen JSON lesen.
Beispiele für Benachrichtigungsrichtlinien, die MQL verwenden, finden Sie in den folgenden Dokumente:
- Mit MQL erstellte Benachrichtigungsrichtlinien
- Benachrichtigungsrichtlinien zum Überwachen von Kontingenten
Informationen zum Konfigurieren von Feldern für Benachrichtigungsrichtlinien finden Sie in der Folgendes:
- Messwertbasierte Benachrichtigungsrichtlinien mit der Google Cloud Console erstellen
- Messwertbasierte Benachrichtigungsrichtlinien mit der API erstellen
YAML für vorhandene Richtlinien generieren
Verwenden Sie zum Generieren von YAML-Darstellungen Ihrer vorhandenen Benachrichtigungsrichtlinien die Methode
gcloud alpha monitoring policies list
-Befehl zum Auflisten der
und die gcloud alpha monitoring policies describe
um die Richtlinie auszugeben.
Verwenden Sie zum Generieren von YAML-Darstellungen Ihrer vorhandenen Benachrichtigungskanäle die Methode
gcloud alpha monitoring channels list
-Befehl zum Auflisten der
Kanäle und die gcloud alpha monitoring channels describe
um die Kanalkonfiguration auszugeben.
Wenn Sie das Flag --format
nicht in die Google Cloud CLI-Befehle einfügen, gehen Sie so vor:
ist das Format für beide gcloud ... describe
-Befehle standardmäßig YAML.
Mit dem folgenden gcloud alpha monitoring policies describe
-Befehl
eine einzelne Richtlinie mit dem Namen
projects/a-gcp-project/alertPolicies/12669073143329903307
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
So generieren Sie JSON-Darstellungen Ihrer vorhandenen Benachrichtigungsrichtlinien und Benachrichtigungskanälen, haben Sie folgende Möglichkeiten:
Fügen Sie den im folgenden Abschnitt beschriebenen
gcloud
-Befehlszeilenbefehlen das Flag--format="json"
hinzu: YAML für vorhandene Richtlinien generieren Führen Sie beispielsweise den folgenden Befehl aus, um Richtlinien aufzulisten:gcloud alpha monitoring policies list --format=json
Verwenden Sie das API Explorer-Widget auf der Referenzseite für die jeweilige API-Methode:
Informationen zu Benachrichtigungsrichtlinien finden Sie in der
alertPolicies.list
undalertPolicies.get
-Methoden.Informationen zu Benachrichtigungskanälen finden Sie in den Methoden
notificationChannels.list
undnotificationChannels.get
.
Weitere Informationen finden Sie unter APIs Explorer.
Richtlinienbeispiele
Wie im Beispiel für die Sicherung/Wiederherstellung 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 unter Verwendung der gleichen Terminologie organisiert, die Das Monitoring in der Google Cloud Console verwendet z. B. Änderungsratenrichtlinie". Es gibt zwei Arten von Bedingungen:
- Eine Schwellenwertbedingung; fast alle in der Benutzeroberfläche genannten Richtlinientypen Varianten einer Schwellenwertbedingung sind
- Eine Abwesenheitsbedingung
In den folgenden Beispielen entsprechen diese Bedingungen conditionThreshold
und conditionAbsent
. Weitere Informationen finden Sie auf der Referenzseite für
Condition
Sie können viele dieser Richtlinien manuell über die Google Cloud Console erstellen. einige können jedoch nur mit der Monitoring API erstellt werden. Weitere Informationen finden Sie unter Benachrichtigungsrichtlinie (UI) erstellen oder Benachrichtigungsrichtlinien mithilfe der API erstellen
Messwertschwellenrichtlinie
Eine Messwertschwellenrichtlinie erkennt, wenn ein Wert vordefinierte Grenze. Schwellenrichtlinien weisen darauf hin, dass sich etwas einem wichtigen Punkt nähert, sodass Sie Maßnahmen einleiten können. Beispiel: Die Bedingung für eine Messwertschwellenrichtlinie ist erfüllt. wenn der verfügbare Speicherplatz weniger als 10 % des gesamten Speicherplatzes ausmacht.
Die folgende Benachrichtigungsrichtlinie verwendet die durchschnittliche CPU-Auslastung als Indikator für den Status einer Gruppe von VMs. Die Bedingung der Richtlinie ist erfüllt, wenn die durchschnittliche CPU die Nutzung der VMs in einem Projekt, gemessen über 60-Sekunden-Intervalle, den Grenzwert einer 90-prozentigen Auslastung für 15 Minuten (900 Sekunden) ü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
Bedingung für fehlende Messwerte
ist erfüllt, wenn innerhalb des definierten Zeitraums keine Daten in einen Messwert geschrieben werden
duration
hinzugefügt.
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
wenn keine Daten mehr in den
für einen Zeitraum von etwa einer Stunde angezeigt, also Ihren stündlichen
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 Zeitraums identisch
im Feld
duration
definiert. - Cloud Monitoring prognostiziert, dass die Zeitreihe gegen den Grenzwert verstößt innerhalb des Prognosezeitraums.
Eine Prognosebedingung ist eine Bedingung für einen Messwertschwellenwert, die konfiguriert ist.
um Prognosen zu erstellen. Wie im folgenden Beispiel dargestellt, sind diese Bedingungen
ein forecastOptions
-Feld enthalten, mit dem Prognosen aktiviert werden, und das Feld
Prognosezeitraums. Im folgenden Beispiel ist der Prognosehorizont auf
einer Stunde. 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
Die Bedingungen für die Änderungsrate sind erfüllt, wenn die Werte in einer Zeitreihe ansteigen, um mindestens den durch den Grenzwert festgelegten Prozentsatz zu senken. Wenn Sie diese Art von Bedingung erstellen, vor dem Vergleich mit dem Schwellenwert auf die Zeitreihe angewendet.
Die Bedingung ermittelt den Durchschnitt der Werte der letzten 10 Minuten, und vergleicht es dann mit dem 10-Minuten-Durchschnitt, kurz vor Beginn des Ausrichtungszeitraums. Sie können den 10-Minuten-Zeitraum für Vergleiche in eine Benachrichtigungsrichtlinie für Änderungsraten verwendet wird. Sie geben jedoch die Ausrichtung an, wenn Sie die Bedingung erstellen.
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, Ein Google Kubernetes Engine-Cluster überschreitet einen Grenzwert:
{
"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 der Verfügbarkeitsdiagnosen wird auf der Seite Verfügbarkeitsdiagnosen angezeigt. können Sie eine Benachrichtigungsrichtlinie konfigurieren, sodass Cloud Monitoring wenn die Verfügbarkeitsdiagnose fehlschlägt.
Die folgende JSON beschreibt beispielsweise eine HTTPS-Verfügbarkeitsdiagnose auf der Google Cloud-Website. 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 oder wenn die SSL- auf der Google Cloud-Website läuft in weniger als 15 Tagen ab. Wenn entweder Bedingung erfüllt ist, sendet Monitoring eine Benachrichtigung an die 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 zu überwachenden Messwert an
nach Typ und Label filtern. 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.
Durch diese Benachrichtigungsrichtlinie sendet Monitoring eine Benachrichtigung an
den angegebenen Benachrichtigungskanal
Es wurde kein Prozess gefunden, der mit dem String nginx
übereinstimmt und als Nutzer www
ausgeführt wird.
länger als 5 Minuten verfügbar:
{
"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 Benachrichtigungen zu erstellen Richtlinien. Obwohl die Cloud Monitoring API die Erstellung von einigen filterbasierten Verhältnissen bietet MQL eine flexiblere Lösung:
- Beispiele für MQL-basierte Verhältnisrichtlinien finden Sie unter MQL Beispiele für Benachrichtigungsrichtlinien.
- Informationen zum Erstellen von Benachrichtigungsrichtlinien mit MQL Siehe Benachrichtigungsrichtlinien mit MQL.
- Informationen zum Diagramm oder zum Monitoring von Verhältnissen von Messwerten Siehe Verhältnisse von Messwerten.
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 Bedingung für Messwertschwellen, wobei
Für die Bedingung in einer Verhältnisrichtlinie werden zwei Filter verwendet: das übliche filter
,
der als Zähler des Verhältnisses dient, und denominatorFilter
,
das als Nenner des Verhältnisses dient.
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 Grenzwert für den Zeitraum verstößt, der durch
duration
.
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 von Die Anzahl der HTTP-Fehlerantworten zur Anzahl aller HTTP-Antworten.
{
"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 Labelloading
ist in dieser Benachrichtigungsrichtlinie irrelevant.
Die Benachrichtigungsrichtlinie wertet Antwortdaten von App Engine-Anwendungen aus,
also Daten, die vom Typ gae_app
der überwachten Ressource 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 größer als 50 % ist (d. h. das Verhältnis ist größer als 0, 5) über den 5-minütigen Ausrichtungszeitraum.
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 eine Benachrichtigung für die
sofort einen neuen Vorfall melden; Der zulässige Zeitraum für das Feld „duration
“
in der Bedingung null Sekunden beträgt. In dieser Bedingung wird als trigger
-Wert eins verwendet,
Dies ist die Anzahl der Zeitreihen, die gegen die Bedingung verstoßen müssen, damit
über den Vorfall. Bei einer App Engine-Anwendung mit einem einzelnen Dienst
ein trigger
-Wert von eins reicht. Wenn Sie eine App mit 20 Diensten haben und
einen Vorfall verursachen möchten, wenn mindestens drei Dienste gegen die Bedingung verstoßen, dann verwenden Sie
trigger
-Anzahl von 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ählten Zeitreihen müssen auf die gleiche Weise aggregiert werden, damit die Berechnung des Verhältnisses gültig ist. Jeder Filter kann mehrere Zeitreihe, da es für jede Kombination eine andere Zeitreihe gibt, von Werten für Labels. Diese Richtlinie gruppiert die Zeitreihen nach dem angegebenen Wert Ressourcenlabels, die den Satz von Zeitachsen in einen Satz partitionieren von Gruppen. Einige Zeitachsen in jeder Gruppe entsprechen dem Zählerfilter. Der Rest entspricht dem Nennerfilter.
Zum Berechnen eines Verhältnisses muss der Satz von Zeitreihen, die mit jedem Filter übereinstimmen, zu einer einzelnen Zeitreihe aggregiert werden. Dadurch erhält jede Gruppe zwei Zeitreihen, 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. wobei Werte dargestellt sind, die
ALIGN_DELTA
der Werte berechnen in diesem 5-minütigen Ausrichtungszeitraum. Dieser Aligner gibt die Anzahl der übereinstimmende Antworten in diesem Ausrichtungszeitraum als 64-Bit-Ganzzahl.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 im Ausrichtungszeitraum.
Die Richtlinie berechnet dann für die Zähler- und Nennerzeitachsen, die jede Gruppe darstellen, das Verhältnis der Werte. Bedingung für die Benachrichtigung erfüllt ist, wenn das Verhältnis größer als 50 % ist.