Dieses Dokument enthält Beispiele für Benachrichtigungsrichtlinien. Die Beispiele sind in JSON geschrieben und verwenden Monitoring-Filter. Sie können Richtlinien entweder in JSON oder YAML erstellen, unabhängig davon, ob Sie die Richtlinie mithilfe von Monitoring-Filtern oder Monitoring Query Language (MQL) definieren. Die Google Cloud CLI kann sowohl JSON als auch YAML lesen und die REST API kann JSON lesen.
Beispiele für Benachrichtigungsrichtlinien, die MQL verwenden, finden Sie in den folgenden Dokumenten:
- Mit MQL erstellte Benachrichtigungsrichtlinien
- Benachrichtigungsrichtlinien zum Überwachen von Kontingenten
Informationen zum Konfigurieren von Feldern für Benachrichtigungsrichtlinien finden Sie hier:
- Messwertbasierte Benachrichtigungsrichtlinien mit der Google Cloud Console erstellen
- Messwertbasierte Benachrichtigungsrichtlinien mit der API erstellen
YAML für vorhandene Richtlinien generieren
Zum Generieren von YAML-Darstellungen Ihrer vorhandenen Benachrichtigungsrichtlinien verwenden Sie den Befehl gcloud alpha monitoring policies list
, um die Richtlinien aufzulisten, und den Befehl gcloud alpha monitoring policies describe
, um die Richtlinie auszudrucken.
Wenn Sie YAML-Darstellungen Ihrer vorhandenen Benachrichtigungskanäle generieren möchten, verwenden Sie 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 Befehlszeilenbefehle von Google Cloud einfügen, wird das Format für beide gcloud ... describe
-Befehle standardmäßig auf YAML gesetzt.
Mit dem folgenden gcloud alpha monitoring policies describe
-Befehl wird beispielsweise eine einzelne Richtlinie mit dem Namen 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 -kanäle zu generieren:
Fügen Sie den Befehlszeilenbefehlen
gcloud
das Flag--format="json"
hinzu, wie unter YAML für vorhandene Richtlinien generieren beschrieben. Führen Sie beispielsweise den folgenden Befehl aus, um Richtlinien aufzulisten:Liste der gcloud alpha monitor policies --format=json
Verwenden Sie das API Explorer-Widget auf der Referenzseite für die jeweilige API-Methode:
Informationen zu Benachrichtigungsrichtlinien finden Sie unter den Methoden
alertPolicies.list
undalertPolicies.get
.Informationen zu Benachrichtigungskanälen finden Sie in den Methoden
notificationChannels.list
undnotificationChannels.get
.
Weitere Informationen finden Sie unter APIs Explorer.
Richtlinienbeispiele
Wie im Beispiel zum Sichern/Wiederherstellen dargestellt, können Sie mit gespeicherten Richtlinien neue Kopien dieser Richtlinien 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 Grenzwertbedingung; fast alle in der UI erwähnten Richtlinientypen sind Varianten einer Grenzwertbedingung.
- 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, manche jedoch nur mit der Monitoring API. Weitere Informationen finden Sie unter Benachrichtigungsrichtlinie (UI) erstellen oder Richtlinien (API) erstellen.
Messwertschwellenrichtlinie
Eine Messwertschwellenrichtlinie ist eine Richtlinie, die 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. Wenn der verfügbare Festplattenspeicher beispielsweise unter 10 % des gesamten Festplattenspeichers fällt und Ihr System bald keinen freien Speicherplatz mehr haben wird.
In der folgenden Richtlinie wird die durchschnittliche CPU-Auslastung als Indikator für den Zustand einer Gruppe von VMs verwendet. Sie gibt eine Benachrichtigung aus, wenn die durchschnittliche CPU-Auslastung einer Gruppe von VMs in einer Instanz und Zone, die über 60-Sekunden-Intervalle gemessen wird, einen Schwellenwert von 90 % 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",
"resource.label.instance_id",
"resource.label.zone"
],
"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 Messwertabwesenheitsrichtlinie wird ausgelöst, wenn für die angegebene Dauer keine Daten für einen Messwert geschrieben werden.
Eine Möglichkeit, dies zu demonstrieren, besteht darin, einen benutzerdefinierten Messwert zu erstellen.
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 verwenden.
Die folgende Benachrichtigungsrichtlinie wird ausgelöst, wenn die Daten etwa eine Stunde lang nicht mehr in diesen Messwert geschrieben werden: Die stündliche Pipeline konnte also 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 wird ausgelöst, wenn alle Prognosen für eine Zeitachse in einem Dauerfenster gleich sind. Sie prognostizieren, dass die Zeitachse innerhalb des Prognosezeitraums gegen den Grenzwert verstößt.
Eine Prognosebedingung ist eine Messwertschwellenbedingung, die für die Verwendung von Prognosen konfiguriert ist. Wie im folgenden Beispiel veranschaulicht, enthalten diese Bedingungen das Feld forecastOptions
, das die Prognose aktiviert und den Prognosezeitraum angibt. Im folgenden Beispiel ist der Prognosezeitraum auf eine Stunde festgelegt, was dem Mindestwert entspricht:
{
"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
Diese Richtlinie benachrichtigt Sie, wenn 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 Richtlinie sendet eine Benachrichtigung, wenn die durchschnittliche CPU-Auslastung in einem Google Kubernetes Engine-Cluster einen Schwellenwert ü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",
"resource.label.instance_id",
"resource.label.zone"
]
},
{
"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 Monitoring-Übersicht angezeigt. Sie können jedoch mithilfe einer Benachrichtigungsrichtlinie direkt benachrichtigt werden, wenn die Verfügbarkeitsdiagnose fehlschlägt.
Die folgende JSON-Datei beschreibt beispielsweise eine HTTPS-Verfügbarkeitsdiagnose auf der Google Cloud-Website. Es prüft alle 5 Minuten die Verfügbarkeit.
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 folgende Benachrichtigungsrichtlinie wird ausgelöst, 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 auftritt, sendet die Benachrichtigungsrichtlinie 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 Benachrichtigungsrichtlinie 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 Richtlinie sendet eine Benachrichtigung an den angegebenen Benachrichtigungskanal, wenn seit mehr als 5 Minuten kein Prozess verfügbar ist, der mit der Zeichenfolge 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 die Verwendung von Monitoring Query Language (MQL), um verhältnisbasierte Benachrichtigungsrichtlinien zu erstellen. Obwohl die Cloud Monitoring API die Erstellung einiger filterbasierter Verhältnisse unterstützt, bietet MQL eine flexiblere und robustere Lösung:
- Beispiele für MQL-basierte Verhältnisrichtlinien finden Sie unter Beispiele für MQL-Benachrichtigungsrichtlinien.
- Informationen zum Erstellen von Benachrichtigungsrichtlinien mit MQL finden Sie unter Benachrichtigungsrichtlinien mit MQL.
- Informationen zur Anzeige von Diagramm- oder Monitoringverhältnissen von Messwerten finden Sie unter Messwerte.
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 einfachen Grenzwertbedingung, bei der die Bedingung in einer Verhältnisrichtlinie zwei Filter verwendet: das übliche filter
, das als Verhältniszähler fungiert, und ein denominatorFilter
, das als Verhältnisnenner 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 Benachrichtigungsrichtlinie wird ausgelöst, wenn das Verhältnis der beiden Filter einen Grenzwert für die angegebene Dauer verletzt.
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 Richtlinie erstellt eine Grenzwertbedingung, 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 Labelloading
ist in dieser Benachrichtigungsrichtlinie irrelevant.
Die Benachrichtigungsrichtlinie betrifft Antwortdaten aus App Engine-Apps, d. h. Daten, die aus dem überwachten Ressourcentyp 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 Richtlinie berechnet das Verhältnis von Fehlerantworten zu Gesamtantworten. Die Richtlinie löst eine Benachrichtigung aus, wenn das Verhältnis im Ausrichtungszeitraum von 5 Minuten über 50 % liegt (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 Benachrichtigung wird sofort durch die Richtlinie ausgelöst. Die zulässige Dauer für die Bedingung beträgt 0 Sekunden. Für diese Richtlinie wird ein Trigger-Zähler von 1 verwendet. Dabei handelt es sich um die Anzahl der Zeitachsen, die gegen die Bedingung zum Auslösen der Benachrichtigung verstoßen. Für App Engine-Anwendungen mit einem einzelnen Dienst ist ein Trigger von 1 in Ordnung. Wenn Sie eine App mit 20 Diensten haben und eine Benachrichtigung auslösen möchten, wenn mindestens drei Dienste gegen die Bedingung verstoßen, verwenden Sie einen Trigger-Zähler 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ählte Zeitachse 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 Wertekombination für Labels eine andere Zeitachse gibt. Diese Richtlinie gruppiert die Zeitachsen nach angegebenen Ressourcenlabels, wodurch die Zeitachsen in eine Gruppe von Gruppen partitioniert werden. Einige Zeitachsen in jeder Gruppe entsprechen dem Zählerfilter. Der Rest entspricht dem Nennerfilter.
Damit ein Verhältnis berechnet werden kann, muss die Reihe der Zeitachsen, die mit jedem Filter übereinstimmen, bis auf jeweils eine einzelne Zeitachse zusammengefasst werden. Dadurch erhält jede Gruppe zwei Zeitachsen, 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 repräsentieren die Berechnung
ALIGN_DELTA
der Werte in diesem 5-minütigen Ausrichtungsintervall. Dieser Aligner gibt die Anzahl übereinstimmender Antworten in diesem Intervall 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 Ausrichtungsintervall melden.
Die Richtlinie berechnet dann für die Zähler- und Nennerzeitachsen, die jede Gruppe darstellen, das Verhältnis der Werte. Sobald es verfügbar ist, ist diese Richtlinie eine einfache Grenzmesswertrichtlinie.