Kontingentmesswerte verwenden

Auf dieser Seite wird beschrieben, wie Sie mit Benachrichtigungsrichtlinien und -diagrammen das Ihnen von Google Cloud zugewiesene Kontingent überwachen. Google Cloud legt eine Reihe von Kontingenten fest, mit denen Sie die von einem Projekt oder einer Organisation verbrauchten Ressourcen verfolgen und begrenzen können. Allgemeine Informationen zu Kontingenten sowie zu Kontingenten und Ratenkontingenten finden Sie unter Mit Kontingenten arbeiten.

Hinweis

Auf dieser Seite wird davon ausgegangen, dass Sie mit Zeitachsendaten und deren Bearbeitung vertraut sind. Auf den folgenden Seiten finden Sie weitere Informationen:

  • Weitere Informationen zum Arbeiten mit Zeitachsendaten finden Sie unter Filter und Aggregation.
  • Definitionen der Begriffe Gauge, Delta und Cumulative finden Sie unter Arten von Messwerten.
  • Weitere Informationen zu den Feldern, die für die Kombination von Zeitachsen verwendet werden, finden Sie unter Aligner und Reducer.

Mit Kontingentmesswerten arbeiten

Cloud Monitoring verwaltet Kontingente auf zwei Arten:

  1. Nutzerkontingent. Für diese Art von Kontingent ist die überwachte Ressource consumer_quota. Die Messwerte für diese Ressource sind eine Teilmenge der serviceruntime Messwerte.

    Die meisten Beispiele auf dieser Seite sind Beispiele für Nutzerkontingente.

  2. Ressourcenspezifische Kontingente. Einige Dienste stellen überwachte Ressourcen bereit, die ressourcenspezifische Messwerte für Kontingente haben. Diese Messwerttypen werden nach dem folgenden Muster in Gruppen von drei Gruppen angezeigt:

    • service/quota/quota-type/exceeded
    • service/quota/quota-type/limit
    • service/quota/quota-type/usage

    Compute Engine verfügt beispielsweise über die Ressource compute.googleapis.com/VpcNetwork. Die mit dieser Ressource verbundenen kontingentbezogenen Messwerte sind die Teilmenge compute.googleapis.com/quota der compute-Messwerte. Es gibt drei Messwerttypen mit dem Kontingent "Instanzen pro VPC-Netzwerk":

Kontingentmesswerte und Limits festlegen

Rohdaten zum Kontingentverbrauch, insbesondere zum Nutzerkontingent, können Informationen zu vielen verschiedenen Kontingenten enthalten. Um Informationen zu einem bestimmten Kontingent für ein Diagramm oder eine Benachrichtigungsrichtlinie zu extrahieren, müssen Sie diese Teilmenge von Kontingentdaten identifizieren.

Je nach Quelle können Kontingentdaten Labels enthalten, mit denen Sie die gewünschten Informationen isolieren können. Diese Labels enthalten Folgendes:

  • Kontingentmesswert: Der Kontingentmesswert ist eine Kennung für einen Kontingenttyp. Er ist kein der in der Messwertliste beschriebenen Messwerttypen. Beispielsweise werden alle Nutzerkontingentdaten als Messwerttyp serviceruntime.googleapis.com wie quota/allocation/usage geschrieben. Dieser Messwerttyp hat das Label quota_metric, mit dem nach einem bestimmten Kontingent gefiltert werden kann, z. B. nach Nutzungsdaten für Zuteilung.
  • Name des Limits: Der Name des Limits gibt einen Grenzwert für einen bestimmten Kontingenttyp an. Mit einem Kontingent kann mehr als ein Limit verknüpft sein. Ein Kontingent für Leseaufrufe kann beispielsweise ein Limit von 100 Minuten pro Tag und ein Tageslimit von 1.000 haben, wobei die beiden Namensnamen readsPerMinute und readsPerDay zulässig sind. Kontingentbezogene Messwerttypen haben möglicherweise ein Feld limit_name für diesen Wert.

Alle serviceruntime.googleapis.com/quota-Messwerttypen bieten das Label quota_metric, aber nur einige davon das Label limit_name. Zu den ressourcenspezifischen Messwerttypen für Kontingente gehört das Label limit_name.

Mit den folgenden Schritten können Sie bestimmte Kontingentmesswerte und Limitnamen ermitteln:

  1. Rufen Sie in der Google Cloud Console die Seite Kontingente in der Admin-Konsole auf:

    Kontingente aufrufen

  2. Suchen Sie das gewünschte Kontingent und klicken Sie auf Alle Kontingente.

  3. Wenn ein Dienst Kontingentmesswerte unterstützt, werden die Felder Kontingentmesswert und Bezeichnung des Limits angezeigt. Der folgende Screenshot für das Kontingent der Compute Engine API-Subnetzwerke zeigt beispielsweise, dass der Kontingentmesswert compute.googleapis.com/subnetworks und der Limitname SUBNETWORKS-per-project ist:

    Beispiel für die Detailseite eines Kontingentmesswerts.

Wenn in den Detailinformationen kein Kontingentmesswert und kein Limitname aufgeführt sind, unterstützt der Dienst keine Kontingentmesswerte.

Wenn die Detailinformationen keine überwachte Ressource enthalten, ist die überwachte Ressource consumer_quota. Andernfalls ist das auf der Detailseite angezeigte Kontingent ein ressourcenspezifisches Kontingent für die benannte überwachte Ressource. Im vorherigen Screenshot wird eine überwachte Ressource nicht explizit aufgelistet, sodass das Kontingent die überwachte Ressource consumer_quota verwendet.

Beispiel: Nutzung für einen bestimmten Nutzerkontingentmesswert aufrufen

Ziel ist es, ein Diagramm zu erstellen, in dem das Gesamtspeicherplatzkontingent von Compute Engine nach Region angezeigt wird. In diesem Beispiel für Nutzerkontingente werden quota/allocation/usage-Daten abgerufen. Anschließend werden die Daten so gefiltert, dass die Zuweisungsnutzung für einen bestimmten Kontingentmesswert angezeigt wird:

  1. Wählen Sie in der Google Cloud Console Cloud Monitoring und dann Metrics Explorer aus.

  2. Wählen Sie den Tab Configuration aus.

  3. Konfigurieren Sie den Metrics Explorer, um die Nutzung des Zuteilungskontingents aufzurufen. Setzen Sie dazu den Ressourcentyp auf Nutzerkontingent und wählen Sie als Messwerttyp Nutzung von Zuteilungskontingenten aus:

    Wählen Sie das Nutzerkontingent aus.

    Das Diagramm zeigt die Nutzung des Zuteilungskontingents als Balkendiagramm für den Zeitraum von sechs Wochen. Wenn Sie die Legende aufrufen, sehen Sie, dass das Diagramm die Kontingentnutzung für mehrere Dienste anzeigt.

    Wenn Sie die Cloud Monitoring API verwenden, lautet der entsprechende Filterwert:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota"
    

    Sie können diesen Filterwert aufrufen, wenn Sie das Menü Ressourcentyp maximieren und dann Direkter Filtermodus auswählen.

  4. Wenn Sie das Diagramm auf den Compute Engine-Dienst beschränken möchten, fügen Sie den Filter service = "compute.googleapis.com" hinzu:

    Nutzerkontingent nach Compute-Dienst filtern.

    Wenn Sie die Cloud Monitoring API verwenden, lautet der entsprechende Filterwert:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" resource.label.service="compute.googleapis.com"
    

    Im Diagramm wird nun die Zeitachse für die zugewiesene Kontingentnutzung für Compute Engine-Kontingente angezeigt. Die Legende zeigt den Wert des Labels quota_metric für jede angezeigte Zeitachse an. Dieser Wert gibt das spezifische Kontingent an. Beispielsweise gibt compute.googleapis.com/disks_total_storage die Zeitachse für das gesamte Laufwerkspeicherkontingent von Compute Engine an.

    Im Diagramm wird die Kontingentnutzung nur für die Kontingente angezeigt, für die die Nutzung erfasst wurde. Wenn das Projekt beispielsweise keine Compute Engine-Ressourcen hat, führt das Filtern nach dem Dienst compute.googleapis.com zu einem Diagramm ohne Daten.

  5. Mit dem Filter quota_metric = "compute.googleapis.com/disks_total_storage" können Sie ein Diagramm erstellen, in dem die gesamte Speichernutzung für Compute Engine angezeigt wird:

    Nutzerkontingent nach Kontingentmesswert filtern.

    Wenn Sie die Cloud Monitoring API verwenden, lautet der entsprechende Filterwert:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" metric.label.quota_metric="compute.googleapis.com/disks_total_storage"
    
  6. Die vorhergehende Karte zeigt Zeitreihen für die Regionen us-centra1 und us-east1 sowie für mehrere Zonen, einschließlich der Zone us-central1-a.

    Wenn Sie das Diagramm so verfeinern möchten, dass nur Daten für die Regionen ohne Zonen angezeigt werden, fügen Sie einen Filter hinzu, der auf dem Label location basiert. In diesem Beispiel, in dem beiden Regionen das Präfix us- vorangestellt ist und mit 1 enden, funktioniert ein Filter, der den regulären Ausdruck location =~"^us.*1$" verwendet, gut:

    Nach Kontingentmesswert und Region filtern.

Bei Nutzerkontingenten gibt der Wert des Labels quota_metric sowohl den Dienst als auch die spezifische überwachte Kontingentnutzung an. Anhand dieser Informationen können Sie Diagramme oder Benachrichtigungsrichtlinien erstellen, die einen bestimmten Kontingentmesswert überwachen.

Benachrichtigungsrichtlinien in Cloud Monitoring

Mithilfe von Benachrichtigungsrichtlinien können Sie Cloud Monitoring so konfigurieren, dass Sie benachrichtigt werden, wenn etwas passiert, z. B. das Erreichen von 85 % Ihres Kontingentlimits.

Eine Benachrichtigungsrichtlinie ist eine Sammlung von Bedingungen und Benachrichtigungsinformationen:

  • Eine Bedingung beschreibt, was überwacht wird, wie die Zeitachsendaten für diese Ressource kombiniert werden und wann eine Benachrichtigung generiert werden muss. Eine Benachrichtigungsrichtlinie muss mindestens eine Bedingung angeben.
  • Der Benachrichtigungskanal gibt an, wer benachrichtigt werden soll und wie er benachrichtigt werden soll, wenn eine Benachrichtigung erfolgt. Sie können beispielsweise die Benachrichtigungsrichtlinie so konfigurieren, dass E-Mails an eine bestimmte Person oder eine Gruppe von Personen gesendet werden.

Es gibt zwei Techniken, die Sie zum Erstellen von Bedingungen für Benachrichtigungsrichtlinien verwenden können:

  • Monitoring-Filter zum Auswählen und Bearbeiten von Daten verwenden Wenn Sie beispielsweise die grafische Benutzeroberfläche zum Erstellen von Bedingungen für Benachrichtigungsrichtlinien verwenden, erstellen Sie Filter. Das im Abschnitt Mit Kontingentmesswerten arbeiten gezeigte Beispiel verwendet Filter zum Auswählen von Daten für ein Diagramm. Sie können auch Filter in Anfragen an die Monitoring API verwenden.

  • Monitoring Query Language (MQL) zum Auswählen und Bearbeiten von Daten verwenden MQL ist eine textbasierte Abfragesprache. Mit dem MQL-Abfrageeditor können Sie Abfragen erstellen, die mit der filterbasierten Technik nicht möglich sind. Wir empfehlen, MQL zum Erstellen von verhältnisbasierten Benachrichtigungsrichtlinien zu verwenden. Weitere Informationen finden Sie in den Beispielen für MQL-Benachrichtigungsrichtlinien.

Auf dieser Seite werden beide Techniken erläutert. Sie können Diagramme auch mit einer dieser Methoden erstellen.

Beispiele für Benachrichtigungsrichtlinien filtern

In diesem Abschnitt enthält jeder Unterabschnitt eine JSON-Darstellung einer Benachrichtigungsrichtlinie sowie ein Paar Tabellen, die die Konfiguration der Richtlinie in der Google Cloud Console beschreiben:

  • Die erste Tabelle beschreibt, was überwacht wird und wie die Daten kombiniert werden.
  • Die zweite Tabelle beschreibt, wann eine Benachrichtigung generiert werden soll.

Diese Beispiele sind für den filterbasierten Ansatz vorgesehen.

Keines dieser Richtlinien-Computing-Verhältnisse Beispiele für verhältnisbasierte Beispiele finden Sie in den Beispielen für MQL-Benachrichtigungsrichtlinien.

Benachrichtigung bei quota/exceeded-Fehlern

Sie können eine Benachrichtigungsrichtlinie erstellen, um Sie zu benachrichtigen, wenn ein Service in Ihrem Google Cloud-Projekt den Fehler "Kontingent überschritten" meldet. Sie können diesen Richtlinientyp mithilfe der Google Cloud Console oder mithilfe der Cloud Monitoring API erstellen.

Google Cloud Console verwenden

Der Rest des Inhalts in diesem Teilabschnitt bezieht sich auf das Bedingungsdialogfeld einer Benachrichtigungsrichtlinie.

Schließen Sie die Ausrichtung mithilfe der Einstellungen in der folgenden Tabelle. Mit dieser Einstellung geben Sie an, dass Sie die Zeitachsendaten für den serviceruntime Messwert /quota/exceeded für alle Services in Ihrem Google Cloud-Projekt überwachen und die Daten nach Kontingentgrenze gruppieren möchten.

Bereich Ziel
Feld

Wert
Ressourcentyp Geben Sie consumer_quota ein.
Messwert serviceruntime.googleapis.com/quota/exceeded auswählen
Filter

Fügen Sie einen Filter hinzu, damit im Diagramm nur Daten für den Dienst angezeigt werden, den Sie beobachten möchten. Fügen Sie beispielsweise zum Monitoring des Identitäts- und Zugriffsverwaltungsdienstes den folgenden Filter hinzu: service = iam.googleapis.com.

Wenn das Filterfeld leer ist, werden alle verfügbaren Messwertdaten in das Diagramm aufgenommen.

Group By (Gruppieren nach)

Wählen Sie quota_metric aus.

Bei dieser Option werden die Daten nach dem Namenstyp des quota_metric gruppiert.

Aggregator

Wählen Sie sum aus.

Das Aggregationsfeld wird automatisch auf sum gesetzt, wenn Daten gruppiert werden. Mit dieser Einstellung wird festgelegt, wie die Daten in den einzelnen Zeitachsen kombiniert werden.

Zeitraum Wählen Sie 1 m
aus
Erweiterte Aggregation Ausrichter: count true

Dieser Messwert ist vom Typ GAUGE, d. h., jeder Datenpunkt in der Zeitachse ist eine sofortige Messung. Der Werttyp ist BOOL. Der Wert true gibt an, dass das Kontingent überschritten wurde.

Für diesen Messwert sind die Ausrichter-Einstellungen von count true und count äquivalent.

Schließen Sie das Dialogfeld Konfiguration mit den folgenden Einstellungen ab. Diese Einstellungen bewirken, dass in der Benachrichtigungsrichtlinie eine Warnung erstellt wird, wenn die Anzahl der Fehler wegen überschrittener Kontingente den Wert 0 für 1 m überschreitet. Hier wird der Wert 0 ausgewählt, da Fehler aufgrund von Kontingentüberschreitungen unerwartet sind und ein Hinweis darauf sind, dass ein Kontingent erhöht werden muss oder dass ein Service geändert werden muss, um die API-Anfragen zu reduzieren. Sie können einen höheren Grenzwert verwenden.

Konfigurationsbereich
– Feld

Wert
Condition triggers if Any time series violates
Condition is above
Threshold 0
For 1 m

Verwendung der Cloud Monitoring API

Sie können diese Benachrichtigungsrichtlinie mithilfe der API-Methode erstellen alertPolicies.create. Sie können die Cloud Monitoring API direkt mit dem gcloud-Befehlszeilentool oder mithilfe von Clientbibliotheken aufrufen. Weitere Informationen finden Sie unter Richtlinien erstellen.

Informationen zur Darstellung von Benachrichtigungsrichtlinien in JSON oder YAML finden Sie unter Beispielrichtlinien.

Eine Darstellung dieser Benachrichtigungsrichtlinie im JSON-Format folgt.


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "60s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_COUNT_TRUE"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "60s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/exceeded\" resource.type=\"consumer_quota\"",
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Quota exceeded error by label.quota_metric SUM",
      }
    ],
    "displayName": "Quota exceeded policy",
  }

Benachrichtigung über den absoluten quota/allocation/usage

Sie können eine Benachrichtigungsrichtlinie erstellen, damit Sie benachrichtigt werden, wenn die Nutzung von Zuteilungskontingenten für einen bestimmten Service in Ihrem Google Cloud-Projekt einen benutzerdefinierten Grenzwert überschreitet. Sie können diesen Richtlinientyp mithilfe der Google Cloud Console oder mithilfe der Cloud Monitoring API erstellen.

Google Cloud Console verwenden

Der Rest des Inhalts in diesem Teilabschnitt bezieht sich auf das Bedingungsdialogfeld einer Benachrichtigungsrichtlinie.

Schließen Sie die Ausrichtung mithilfe der Einstellungen in der folgenden Tabelle. Mit dieser Einstellung geben Sie an, dass Sie die Zeitachsendaten für den serviceruntime Messwert /quota/allocation/usage für einen Service in Ihrem Google Cloud-Projekt überwachen und die Daten nach Kontingentgrenze gruppieren möchten.

Bereich Ziel
Feld

Wert
Ressourcentyp Geben Sie consumer_quota ein.
Messwert serviceruntime.googleapis.com/quota/allocation/usage auswählen
Filter

Fügen Sie einen Filter hinzu, damit im Diagramm nur Daten für den Dienst angezeigt werden, den Sie beobachten möchten. Fügen Sie beispielsweise zum Monitoring des Identitäts- und Zugriffsverwaltungsdienstes den folgenden Filter hinzu: service = iam.googleapis.com.

Wenn das Filterfeld leer ist, werden alle verfügbaren Messwertdaten in das Diagramm aufgenommen.

Group By (Gruppieren nach)

Wählen Sie quota_metric aus.

Bei dieser Option werden die Daten nach dem Namenstyp des quota_metric gruppiert.

Aggregator

Wählen Sie sum aus.

Das Aggregationsfeld wird automatisch auf sum gesetzt, wenn Daten gruppiert werden. Mit dieser Einstellung wird festgelegt, wie die Daten in den einzelnen Zeitachsen kombiniert werden.

Zeitraum Wählen Sie 1440 m
aus

Der angegebene Zeitraum entspricht dem Stichprobenintervall für diesen Messwert.

Erweiterte Aggregation Ausrichter: next older

Der Ausrichter wird auf next older gesetzt, um den Messwert dieses GAUGE-Messwerts anzuzeigen.

Schließen Sie das Dialogfeld Konfiguration mit den folgenden Einstellungen ab. Durch diese Einstellungen wird in der Benachrichtigungsrichtlinie eine Warnung erstellt, wenn der Wert der Zeitachse für 1440 m über 2,5 liegt. Der Wert von 1440 m entspricht dem Ausrichtungszeitraum. Für dieses Beispiel wurde der Wert 2,5 ausgewählt, da er etwas höher als der Normalwert für das Testsystem ist. Wählen Sie den Schwellenwert basierend auf dem zu überwachenden Service in Kombination mit dem erwarteten Wertebereich für den Messwert aus.

Konfigurationsbereich
– Feld

Wert
Condition triggers if Any time series violates
Condition is above
Threshold 2.5
For 1440 m

Verwendung der Cloud Monitoring API

Sie können diese Benachrichtigungsrichtlinie mithilfe der API-Methode erstellen alertPolicies.create. Sie können die Cloud Monitoring API direkt mit dem gcloud-Befehlszeilentool oder mithilfe von Clientbibliotheken aufrufen. Weitere Informationen finden Sie unter Richtlinien erstellen.

Informationen zur Darstellung von Benachrichtigungsrichtlinien in JSON oder YAML finden Sie unter Beispielrichtlinien.

Eine Darstellung dieser Benachrichtigungsrichtlinie im JSON-Format folgt.


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "86400s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_NEXT_OLDER"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "86400s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/allocation/usage\" resource.type=\"consumer_quota\" resource.label.\"service\"=\"iam.googleapis.com\"",
          "thresholdValue": 2.5,
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Allocation quota usage for iam.googleapis.com by label.quota_metric SUM",
      }
    ],
    "displayName": "Absolute quota usage policy",
  }

Beispiele für MQL-Benachrichtigungsrichtlinien

MQL ist eine textbasierte Abfragesprache, die eine Reihe von Vorgängen verwendet, die über senkrechte Striche verknüpft sind. Mit MQL können Sie leistungsfähigere und flexiblere Abfragen erstellen, als mit Monitoring-Filtern möglich sind. Wir empfehlen, MQL zum Einrichten von verhältnisbasierten Benachrichtigungsrichtlinien zu verwenden. Mit MQL können Sie beispielsweise ein Verhältnis für die Nutzung von Ratenkontingenten einrichten. Dafür müssen Sie das Verhältnis eines Messmesswerts (das Limit) und eines Deltamesswerts (die Rate) berechnen.

Sie können MQL-basierte Benachrichtigungsrichtlinien mithilfe der Cloud Console oder der Monitoring API erstellen:

Weitere Informationen zu MQL finden Sie unter Monitoring-Abfragesprache verwenden. Weitere Informationen zu MQL-basierten Benachrichtigungsrichtlinien finden Sie unter Benachrichtigungsrichtlinien mit MQL.

Verhältnisbenachrichtigung zur Nutzung des Ratenkontingents für ein Limit

Das folgende MQL-Abfragemuster beschreibt eine Warnung, die überwacht, wenn die minutengenaue Auslastung eines bestimmten Ressourcendienstes 80 % eines bestimmten Limits überschreitet:

    fetch consumer_quota
    | filter resource.service == 'sample.googleapis.com'
    | { metric serviceruntime.googleapis.com/quota/rate/net_usage
        | align delta_gauge(1m)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            sum(value.net_usage)
      ; metric serviceruntime.googleapis.com/quota/limit
        | filter metric.limit_name == 'myApiLimitPerDay'
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            sliding(1m), max(val()) }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

Nehmen Sie folgende Änderungen vor, um dieses Abfragemuster zu verwenden:

  • Ersetzen Sie sample.googleapis.com durch den zu überwachenden Dienst.
  • Ersetzen Sie myApiLimitPerDay für metric.limit_name durch das Limit, das Sie verfolgen möchten. Informationen zum Suchen nach Kontingentnamen finden Sie unter Kontingentmesswerte und Limitnamen identifizieren.
  • Ersetzen Sie 1m in den Funktionen delta_gauge und sliding durch ein geeignetes Fenster für Ihr Limit.

Ändern Sie nicht den Vorgang every 1m, der bestimmt, wie oft die Bedingung geprüft wird.

Diese Abfrage kann nicht mit Filtern erstellt werden.

Verhältnisbenachrichtigung zur Verwendung des Ratenkontingents mit Platzhaltern

MQL unterstützt das Filtern mit Platzhaltern, regulären Ausdrücken und boolescher Logik. Beispielsweise können Sie mit MQL eine Benachrichtigung erstellen, die mehrere Limits aufspürt und eine Warnung ausgibt, wenn ein Grenzwert überschritten wird.

Das folgende MQL-Abfragemuster beschreibt eine Benachrichtigung, die überwacht, wenn die Ratennutzung eines Ressourcendiensts pro Minute oder Tag 80 % überschreitet:

    fetch consumer_quota
    | filter resource.service =~ '.*'
    | { { metric serviceruntime.googleapis.com/quota/rate/net_usage
          | align delta_gauge(1m)
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sum(value.net_usage)
        ; metric serviceruntime.googleapis.com/quota/limit
          | filter metric.limit_name =~ '.*PerMinute.*'
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sliding(1m), max(val()) }
        | ratio
      ; { metric serviceruntime.googleapis.com/quota/rate/net_usage
          | align delta_gauge(1d)
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sum(value.net_usage)
        ; metric serviceruntime.googleapis.com/quota/limit
          | filter metric.limit_name =~ '.*PerDay.*'
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sliding(1d), max(val()) }
        | ratio }
    | union
    | every 1m
    | condition gt(val(), 0.8 '1')

Nehmen Sie folgende Änderungen vor, um dieses Abfragemuster zu verwenden:

  • Ersetzen Sie den regulären Ausdruck für resource.service durch einen regulären Ausdruck für die Dienste, die Sie verfolgen möchten.
  • Im ersten Verhältnis:
    • Ersetzen Sie .*PerMinute.* für metric.limit_name durch einen regulären Ausdruck für die erste Gruppe von Limits, die Sie verfolgen möchten. Informationen zum Suchen nach Kontingentnamen finden Sie unter Kontingentmesswerte und Limitnamen identifizieren.
    • Ersetzen Sie 1m in den Funktionen delta_gauge und sliding durch ein Fenster, das Ihren Limits entspricht.
  • Im zweiten Verhältnis:
    • Ersetzen Sie .*PerDay.* für metric.limit_name durch einen regulären Ausdruck für die zweite Gruppe von Limits, die Sie verfolgen möchten.
    • Ersetzen Sie 1d in den Funktionen delta_gauge und sliding durch ein Fenster, das Ihren Limits entspricht.

Ändern Sie nicht den Vorgang every 1m, der bestimmt, wie oft die Bedingung geprüft wird.

Diese Abfrage kann nicht mit Filtern erstellt werden.

Verhältnisbenachrichtigung zur Nutzung des Zuweisungskontingents für ein Limit

Das folgende MQL-Abfragemuster beschreibt eine Benachrichtigung, die überwacht, wenn die tägliche Zuweisungsnutzung eines bestimmten Ressourcendienstes 80 % eines bestimmten Limits überschreitet:

    fetch consumer_quota
    | filter resource.service == 'sample.googleapis.com'
    | { metric serviceruntime.googleapis.com/quota/allocation/usage
        | align next_older(1d)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            max(val())
      ; metric serviceruntime.googleapis.com/quota/limit
        | filter metric.limit_name == 'CPUs-per-project'
        | align next_older(1d)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            min(val())
      }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

Nehmen Sie folgende Änderungen vor, um dieses Abfragemuster zu verwenden:

  • Ersetzen Sie sample.googleapis.com durch den zu überwachenden Dienst.
  • Ersetzen Sie CPUs-per-project für metric.limit_name durch das Limit, das Sie verfolgen möchten. Informationen zum Suchen nach Kontingentnamen finden Sie unter Kontingentmesswerte und Limitnamen identifizieren.

Ändern Sie nicht den Vorgang every 1m, der bestimmt, wie oft die Bedingung geprüft wird.

Beispiel: CPU-Auslastung von 75 % in einer beliebigen Region

Die folgende Abfrage erstellt eine Benachrichtigungsrichtlinie, die ausgelöst wird, wenn die CPU-Nutzung der Compute Engine-VM-Instanz 75 % des Limits in einer beliebigen Region überschreitet:

fetch consumer_quota
| filter resource.service == 'compute.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'CPUS-per-project-region'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.75 '1')

Diese Richtlinie für Nutzerkontingente verwendet den Limitnamen CPUS-per-project-region im Compute Engine API-Kontingent "CPUs". Informationen zum Suchen nach Kontingentnamen finden Sie unter Kontingentmesswerte und Limitnamen identifizieren.

Verhältnisbenachrichtigung zur Nutzung des Zuweisungskontingents für einen Dienst

MQL unterstützt das Filtern mit Platzhaltern, regulären Ausdrücken und boolescher Logik. Sie können beispielsweise mit MQL eine Benachrichtigung erstellen, die mehrere Limits oder Dienste verfolgt und Sie benachrichtigt, wenn ein Grenzwert überschritten wird.

Die folgende MQL-Abfrage beschreibt eine Benachrichtigung, die überwacht, wenn die tägliche Zuweisungsnutzung eines Ressourcendienstes 80 % für ein Kontingentlimit überschreitet:

fetch consumer_quota
| filter resource.service =~ '.*'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.8 '1')

Sie können diese Abfrage wie dargestellt verwenden oder den regulären Ausdruck für resource.service durch einen regulären Ausdruck für die Dienste ersetzen, die Sie verfolgen möchten. Sie können auch nach einem bestimmten Dienst filtern und Platzhalter in einem Limitfilter verwenden.

Ändern Sie nicht den Vorgang every 1m, der bestimmt, wie oft die Bedingung geprüft wird.

Beispiel: CPU-Auslastung über 50 % in bestimmten Zonen

Die folgende Abfrage erstellt eine Benachrichtigungsrichtlinie, die ausgelöst wird, wenn die CPU-Auslastung von Compute Engine-VM-Instanzen 50% des Limits in einer der us-central1-Zonen überschreitet. Diese Abfrage filtert die limit-Daten nach einem Limitnamen und dem Ressourcenstandort:

fetch consumer_quota
| filter resource.service == 'compute.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'CPUS-per-project-zone' &&
             resource.location =~ 'us-central1-.*'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.50 '1')

Diese Richtlinie für Nutzerkontingente verwendet den Limitnamen CPUS-per-project-zone im Compute Engine API-Kontingent "CPUs". Informationen zum Suchen nach Kontingentnamen finden Sie unter Kontingentmesswerte und Limitnamen identifizieren.

Verhältnisbenachrichtigung mit ressourcenspezifischem Kontingent

Mit MQL können Sie Verhältnisse für ressourcenspezifische kontingentbezogene Messwerte festlegen. In diesem Fall geben Sie eine dienstspezifische überwachte Ressource an und berechnen ein Verhältnis über ein Paar ressourcenspezifischer messwertbezogener Messwerte.

Das folgende Abfragemuster beschreibt eine Benachrichtigung, die überwacht, ob die Nutzung eines Kontingents 80 % des Limits überschreitet:

    fetch sample.googleapis.com/SampleResource
    | { metric sample.googleapis.com/quota/samplemetric/usage
        | align next_older(1d)
        | group_by [resource.label_1, ... , resource.label_n,
                    metric.label_1, ... , metric.label_n],
            max(val())
      ; metric sample.googleapis.com/quota/samplemetric/limit
        | align next_older(1d)
        | group_by [resource.label_1, ... , resource.label_n,
                    metric.label_1, ... , metric.label_n],
            min(val())
      }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

Nehmen Sie folgende Änderungen vor, um dieses Abfragemuster zu verwenden:

  • Ersetzen Sie sample.googleapis.com durch den zu überwachenden Dienst.
  • Ersetzen Sie sampleResource durch die verknüpfte überwachte Ressource.
  • Ersetzen Sie samplemetric durch den String für eine Gruppe von Messwerttypen.
  • Listen Sie in den group_by-Vorgängen alle Ressourcen- und Messwertlabels auf.

Beispiel: CPU-Auslastung von 75 % in einer beliebigen Region

Die folgende MQL-Abfrage richtet zum Beispiel eine Benachrichtigung ein, die überwacht, wenn die Nutzung des instances_per_vpc_network-Kontingents von Compute Engine für eine beliebige Netzwerk-ID 80 % überschreitet:

fetch compute.googleapis.com/VpcNetwork
| { metric compute.googleapis.com/quota/instances_per_vpc_network/usage
    | align next_older(1d)
    | group_by [resource.resource_container, metric.limit_name,
                resource.location, resource.network_id],
        max(val())
  ; metric compute.googleapis.com/quota/instances_per_vpc_network/limit
    | align next_older(1d)
    | group_by [resource.resource_container, metric.limit_name,
                resource.location, resource.network_id],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.80 '1')

Beachten Sie, dass diese Abfrage den Ressourcentyp compute.googleapis.com/VpcNetwork und nicht consumer_quota verwendet und das Verhältnis der beiden compute.googleapis.com/quota/instances_per_vpc_network-Messwerte usage und limit nimmt.

Diagrammbeispiele

Diagramme zeigen Zeitachsendauer an. Mit dem Metrics Explorer können Sie ein Diagramm erstellen. Mit dem Metrics Explorer können Sie das Diagramm entweder löschen, wenn Sie es nicht mehr benötigen, oder es in einem Dashboard speichern. In der Dashboard-Ansicht können Sie ein Diagramm zum Dashboard hinzufügen.

Um ein Diagramm zu erstellen, geben Sie an, was Sie anzeigen möchten und wie Sie diese Daten anzeigen möchten. Der Rest dieses Abschnitts enthält Einstellungen, mit denen Sie Diagramme für Nutzerkontingente und ressourcenspezifische Kontingente erstellen können. Sie können auch die Einstellungen für das Dialogfeld Zielvorhaben einer Benachrichtigungsrichtlinie verwenden, um ein Diagramm zu erstellen.

Maximale Nutzung im Intervall für quota/allocation/usage

Um die Zeitachsendaten für den serviceruntime-Messwert quota/allocation/usage für alle Services in Ihrem Google Cloud-Projekt anzusehen, bei denen die Daten nach dem Namen der Quotenmetrik gruppiert sind und der maximale Wert der Metrik in einem 25-Stunden-Intervall angezeigt wird, nutzen Sie die folgenden Einstellungen:

Bereich Ziel
Feld

Wert
Ressourcentyp Geben Sie consumer_quota ein.
Messwert serviceruntime.googleapis.com/quota/allocation/usage auswählen
Filter

Fügen Sie einen Filter hinzu, damit im Diagramm nur Daten für den Dienst angezeigt werden, den Sie beobachten möchten. Fügen Sie beispielsweise zum Monitoring des Identitäts- und Zugriffsverwaltungsdienstes den folgenden Filter hinzu: service = iam.googleapis.com.

Wenn das Filterfeld leer ist, werden alle verfügbaren Messwertdaten in das Diagramm aufgenommen.

Group By (Gruppieren nach)

Wählen Sie quota_metric aus.

Bei dieser Option werden die Daten nach dem Namenstyp des quota_metric gruppiert.

Aggregator

Wählen Sie sum aus.

Das Aggregationsfeld wird automatisch auf sum gesetzt, wenn Daten gruppiert werden. Mit dieser Einstellung wird festgelegt, wie die Daten in den einzelnen Zeitachsen kombiniert werden.

Zeitraum Wählen Sie 1500 m
aus

Der Zeitraum von 25 Stunden ist etwas länger als das Stichprobenintervall für diesen Messwert.

Erweiterte Aggregation Ausrichter:max
Sekundärer Aggregator:sum

Der Ausrichter ist so eingestellt, dass er den Höchstwert des Messwerts anzeigt, der über den Ausrichtungszeitraum gemessen wurde. Der alternative Aggregator kombiniert die Zeitachsen für die verschiedenen Services zu einer einzigen Zeitachse.

Zeitachsen für quota/rate/net_usage

Um die Zeitachsendaten für den serviceruntime-Messwert quota/rate/net_usage für alle Services in Ihrem Google Cloud-Projekt anzusehen, bei denen die Daten nach dem Namen der Quotenmetrik gruppiert sind und die Nutzungsrate angezeigt wird, nutzen Sie die folgenden Einstellungen:

Bereich Ziel
Feld

Wert
Ressourcentyp Geben Sie consumer_quota ein.
Messwert serviceruntime.googleapis.com/quota/rate/net_usage auswählen
Filter

Fügen Sie einen Filter hinzu, damit im Diagramm nur Daten für den Dienst angezeigt werden, den Sie beobachten möchten. Fügen Sie beispielsweise zum Monitoring des Identitäts- und Zugriffsverwaltungsdienstes den folgenden Filter hinzu: service = iam.googleapis.com.

Wenn das Filterfeld leer ist, werden alle verfügbaren Messwertdaten in das Diagramm aufgenommen.

Group By (Gruppieren nach)

Wählen Sie quota_metric aus.

Bei dieser Option werden die Daten nach dem Namenstyp des quota_metric gruppiert.

Aggregator

Wählen Sie sum aus.

Das Aggregationsfeld wird automatisch auf sum gesetzt, wenn Daten gruppiert werden. Mit dieser Einstellung wird festgelegt, wie die Daten in den einzelnen Zeitachsen kombiniert werden.

Zeitraum Wählen Sie 1 m
aus

Der Zeitraum von einer Minute entspricht dem Stichprobenintervall für diesen Messwert.

Erweiterte Aggregation Ausrichter: rate

Durch Festlegen des Ausrichters auf den Wert rate werden die in der Zeitachse für diesen DELTA-Messwert gespeicherten Werte in eine neue Zeitachse umgewandelt, in der die Rate-Daten gespeichert werden. Die Y-Achse für das Diagramm enthält die Einheiten des Kontingents pro Sekunde.

Zeitachsen für quota/limit

Verwenden Sie die folgenden Einstellungen, um die Zeitreihendaten für den serviceruntime-Messwert quota/limit für alle Services in Ihrem Google Cloud-Projekt, in denen die Daten über 25 Stunden aggregiert sind, anzuzeigen:

Bereich Ziel
Feld

Wert
Ressourcentyp Geben Sie consumer_quota ein.
Messwert serviceruntime.googleapis.com/quota/limit auswählen
Filter

Fügen Sie einen Filter hinzu, damit im Diagramm nur Daten für den Dienst angezeigt werden, den Sie beobachten möchten. Fügen Sie beispielsweise zum Monitoring des Identitäts- und Zugriffsverwaltungsdienstes den folgenden Filter hinzu: service = iam.googleapis.com.

Wenn das Filterfeld leer ist, werden alle verfügbaren Messwertdaten in das Diagramm aufgenommen.

Group By (Gruppieren nach) Leer lassen.
Aggregator none
Zeitraum Wählen Sie 1500 m
aus
Erweiterte Aggregation Ausrichter: next older

Der Ausrichter wird auf next older gesetzt, um den Messwert dieses GAUGE-Messwerts anzuzeigen. Der Ausrichtungszeitraum von 25 Stunden ist etwas länger als das Stichprobenintervall für diesen Messwert.

Zeitachsen für quota/instances_per_vpc_network/limit

Verwenden Sie die folgenden Einstellungen, um die Zeitachsendaten für den compute.googleapis.com-Messwert quota/instances_per_vpc_network/limit für alle Netzwerke in Ihrem Google Cloud-Projekt anzuzeigen:

Bereich Ziel
Feld

Wert
Ressourcentyp Geben Sie compute.googleapis.com/VpcNetwork ein.
Messwert compute.googleapis.com/quota/instances_per_vpc_network/limit auswählen
Filter Leer lassen
Group By (Gruppieren nach) Leer lassen
Aggregator Als none lassen
Zeitraum Wählen Sie 1 m
aus

Der angegebene Zeitraum entspricht dem Stichprobenintervall für diesen Messwert.

Erweiterte Aggregation Ignorieren

Zeitachsen für quota/instances_per_vpc_network/usage

Verwenden Sie die folgenden Einstellungen, um die Zeitachsendaten für den compute.googleapis.com-Messwert quota/instances_per_vpc_network/usage für eines der Netzwerke in Ihrem Google Cloud-Projekt anzuzeigen:

Bereich Ziel
Feld

Wert
Ressourcentyp Geben Sie compute.googleapis.com/VpcNetwork ein.
Messwert compute.googleapis.com/quota/instances_per_vpc_network/usage auswählen
Filter

Fügen Sie einen Filter hinzu, damit im Diagramm nur ein Teil aller Daten angezeigt wird. Wenn Sie beispielsweise die Nutzung für ein bestimmtes Netzwerk sehen möchten, fügen Sie den folgenden Filter hinzu: network_id = Kennung.

Wenn das Filterfeld leer ist, werden alle verfügbaren Messwertdaten in das Diagramm aufgenommen.

Group By (Gruppieren nach) Leer lassen
Aggregator Als none lassen
Zeitraum Wählen Sie 1 m
aus
Erweiterte Aggregation Ignorieren

MQL-Diagramme

Mit MQL-Abfragen können Sie im MQL-Abfrageeditor Diagramme erstellen. Beispielsweise können alle Abfragen, die in Beispielen für MQL-Benachrichtigungsrichtlinien angezeigt werden, in den Abfrageeditor eingegeben werden. Sie können den letzten Vorgang condition in jeder Abfrage weglassen. Sie wird angewendet, außer wenn eine Bedingung für eine Benachrichtigungsrichtlinie erstellt wird. In einem Diagramm tut der condition-Vorgang nichts.

Weitere Informationen finden Sie unter Abfrageeditor verwenden und in den MQL-Beispielen.