Benachrichtigungsrichtlinien mit einer auf Monitoring Query Language (MQL) basierenden Bedingung können Sie Ihre Benachrichtigungsumgebung für viele mögliche Anwendungsfälle konfigurieren. Bestimmte Konfigurationen sind nur über die Verwendung von MQL-Abfragen
In diesem Dokument werden mehrere Anwendungsfälle und Beispielabfragen beschrieben. Benachrichtigungsrichtlinien mit einer MQL-basierten Bedingung in einer der Produktionsumgebung.
Benachrichtigung zu dynamischen Grenzwerten
Mit einer MQL-Abfrage können Sie eine Benachrichtigungsrichtlinie konfigurieren, löst Alarme basierend auf einem Schwellenwert aus, der im Laufe der Zeit variiert, z. B. als Wochentage. Diese Konfiguration wird in Benachrichtigungen nicht unterstützt Richtlinienbedingungen ohne MQL-Abfragen.
Beispiel: Sie haben eine MQL-Abfrage, die eine Benachrichtigung sendet, einer Compute Engine-Instanz 95 % überschreitet:
fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization | align | every 30s | condition utilization > 95'%'
Sie sollten jedoch einen niedrigeren Auslastungsschwellenwert wie 85 % für an Wochenenden, um längere Antwortzeiten Ihres Supportteams zu berücksichtigen. In diesem Fall könnten Sie Ihre Abfrage mit einer Wertspalte konfigurieren, die Benachrichtigungsschwellenwert:
fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization | align | every 30s | value add [day_of_week: end().timestamp_to_string('%w').string_to_int64] | value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6] | value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')] | condition utilization > scale(max_allowed_utilization)
Mit den value-Vorgängen wird Folgendes ausgeführt:
value add [day_of_week: end().timestamp_to_string('%w').string_to_int64]
fügt eine Wertspalte hinzu, deren Wert eine Zahl zwischen 0 und 6 ist, wobei0
ist Sonntag und6
ist Samstag.value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6]
ersetzt Ihre Tagesnummer durch einen booleschen Wert, der angibt, ob der Datenpunkt war an einem Wochenende oder einem Wochentag.value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')]
ersetzt den booleschen Wert durch einen Schwellenwert, der je nach Wert variiert. vonis_weekend
.
Die Bedingung condition utilization > scale(max_allowed_utilization)
die beiden Wertespalten vergleicht.
Ein Beispiel für eine Benachrichtigungsrichtlinie mit einer MQL-basierten Bedingung, die Konfiguriert Schweregrade von Vorfällen basierend auf dynamischen Kriterien, siehe Dynamische Schweregrade mit MQL erstellen
Benachrichtigung über Schwellenwerte basierend auf der Änderungsrate
Sie können MQL-Abfragen für Benachrichtigungsrichtlinien konfigurieren, um Schwellenwerte auszuwerten
basierend auf der Änderungsrate für einen Messwert. Sie möchten z. B. auswerten,
die Rate der 5xx
Fehler pro Instanz von resource.method
in Ihrem
API-Anfragen, bei denen Ihre Rate den Anfragen pro Sekunde entspricht. Wenn der Preis
größer als 5 Fehlerantworten pro Sekunde ist,
sendet eine Warnung:
fetch consumed_api | metric 'serviceruntime.googleapis.com/api/request_count' | filter (metric.response_code_class == '5xx') | align rate(10m) | every 30s | group_by [resource.method], [value_request_count_mean: mean(value.request_count)] | condition val() > 0.05'1/s'
Sie können Benachrichtigungsrichtlinien für die Änderungsrate ohne MQL erstellen:
- Ein Beispiel für die Verwendung der Google Cloud Console finden Sie unter Änderungsrate überwachen
- Ein Beispiel für die Verwendung der Cloud Monitoring API finden Sie unter Richtlinie zu Änderungsraten.
Benachrichtigung zu verhältnisbasierten Schwellenwerten
Ihre Benachrichtigungsrichtlinie kann eine MQL-Abfrage verwenden, um
Verhältnisse, die sich aus dem Verbinden von zwei Messwerten und Teilen der Wertspalten ergeben.
Sie möchten beispielsweise das Verhältnis von read
Byte im Vergleich zu write
abfragen.
Byte für jede Ihrer Compute Engine-Instanzen. Wenn das Verhältnis größer ist
als 3/5
oder 60%, sendet Cloud Monitoring eine Benachrichtigung:
{ fetch gce_instance :: compute.googleapis.com/instance/disk/read_bytes_count; fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count } | every 30s | join | value val(0) / val(1) | condition val() > 0.6
Sie können auch das Verhältnis der aggregierten Werte abfragen. Zum Beispiel möchten Sie
durchschnittliche CPU-Nutzungszeit pro Kern in Ihrer Compute Engine berechnen
Instanzen. Wenn das Verhältnis größer als 3/5
oder 60 % ist, gilt:
Cloud Monitoring sendet eine Benachrichtigung. In diesem Beispiel müssen Sie auch
Eine cast_units
-Funktion, um die Maßeinheiten auszurichten.
{ fetch gce_instance :: compute.googleapis.com/instance/cpu/usage_time | group_by [], .sum; fetch gce_instance :: compute.googleapis.com/instance/cpu/reserved_cores | group_by [], .sum | cast_units('s{CPU}') } | every 30s | ratio | condition val() > 0.6
Sie können verhältnisbasierte Benachrichtigungsrichtlinien ohne MQL erstellen:
- Ein Beispiel für die Verwendung der Google Cloud Console finden Sie unter Verhältnisse berechnen:
- Ein Beispiel für die Verwendung der Cloud Monitoring API finden Sie unter Messwertverhältnis: