Kontingentmesswerte grafisch darstellen lassen und überwachen

In diesem Dokument wird anhand mehrerer Beispiele beschrieben, wie Sie Benachrichtigungsrichtlinien und Diagramme zum Überwachen des Ihnen von Google Cloud zugeteilten Kontingents erstellen. Google Cloud bietet verschiedene Kontingente, mit denen Sie die von einem Projekt oder einer Organisation verbrauchten Ressourcen verfolgen und begrenzen können. Allgemeine Informationen zu Kontingenten, einschließlich Informationen zu Zuteilungskontingenten und Ratenkontingenten, finden Sie unter Mit Kontingenten arbeiten.

Hinweise

In diesem Dokument wird davon ausgegangen, dass Sie mit Zeitreihendaten und ihrer Bearbeitung vertraut sind. Weitere Informationen finden Sie in den folgenden Ressourcen:

  • Informationen zum Arbeiten mit Zeitachsendaten finden Sie unter Filtern und Aggregieren.
  • Definitionen der Begriffe gauge, gauge und gauge 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.

Kontingentverwaltung

Cloud Monitoring verwaltet Kontingente auf zwei Arten:

  • Nutzerkontingent: Bei dieser 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.

  • Ressourcenspezifische Kontingente: Einige Dienste stellen überwachte Ressourcen mit ressourcenspezifischen Messwerten für Kontingente bereit. Diese Messwerttypen werden in Dreiergruppen angezeigt und folgen einem Namensformat:

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

    Compute Engine hat beispielsweise die Ressource compute.googleapis.com/VpcNetwork. Die mit dieser Ressource verknüpften kontingentbezogenen Messwerte sind die Teilmenge compute.googleapis.com/quota der compute-Messwerte. Für das Kontingent "Instanzen pro VPC-Netzwerk" gibt es drei Messwerttypen:

Kontingentmesswerte und Namen von Limits identifizieren

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

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

  • Kontingentmesswert: Der Kontingentmesswert ist eine Kennung für einen Kontingenttyp. Er ist nicht einer der in der Messwertliste beschriebenen Messwerttypen. Beispielsweise werden alle Nutzerkontingentdaten als serviceruntime.googleapis.com-Messwerttyp wie quota/allocation/usage geschrieben. Dieser Messwerttyp hat das Label quota_metric, das zum Filtern nach einem bestimmten Kontingent verwendet werden kann, z. B. Daten zur Zuteilungsnutzung.
  • Limitname: Der Name des Limits gibt ein Limit für einen bestimmten Kontingenttyp an. Mit einem Kontingent können mehrere Limits verknüpft sein. Ein Kontingent für Leseaufrufe kann beispielsweise ein Limit von 100 Aufrufen pro Minute und ein Limit von 1.000 Aufrufen pro Tag mit zwei Limitnamen haben: readsPerMinute und readsPerDay. Kontingentbezogene Messwerttypen haben möglicherweise ein Feld limit_name für diesen Wert.

Alle serviceruntime.googleapis.com/quota-Messwerttypen stellen das Label quota_metric bereit, aber nur einige enthalten das Label limit_name. Ressourcenspezifische Messwerttypen für Kontingente enthalten das Label limit_name.

Kontingentmesswerte werden nicht von allen Google Cloud-Diensten unterstützt. So können Sie feststellen, ob ein Dienst Kontingentmesswerte unterstützt, und die Werte der kontingentspezifischen Labels ermitteln:

  1. Rufen Sie in der Google Cloud Console die Seite Kontingente und Systemlimits auf:

    Zur Seite Kontingente und Systemlimits

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis mit der Zwischenüberschrift IAM und Verwaltung aus.

  2. Klicken Sie auf Spalte ansehen und fügen Sie der Kontingentanzeige die folgenden Spalten hinzu:

    • Messwert: In dieser Spalte wird der Wert des Labels quota_metric angezeigt.
    • Name des Limits: In dieser Spalte wird der Wert des Labels limit_name angezeigt.
    • Überwachte Ressource: Wenn dieses Feld ausgefüllt ist, verwendet das Kontingent die aufgeführte überwachte Ressource. Wenn das Feld leer ist, ist die überwachte Ressource für das Kontingent consumer_quota.
  3. Suchen Sie das gewünschte Kontingent.

    Das Subnetzwerkkontingent der Compute Engine API listet beispielsweise den Messwert compute.googleapis.com/subnetworks, den Limitnamen SUBNETWORKS-per-project und keine überwachte Ressource auf. Daher ist die überwachte Ressource für dieses Kontingent consumer_quota.

Beispiel: Nutzung für einen bestimmten Nutzerkontingentmesswert aufrufen

Ziel ist es, ein Diagramm zu erstellen, das die Gesamtspeicherkontingente von Compute Engine nach Region anzeigt. In diesem Beispiel für ein Nutzerkontingent werden quota/allocation/usage-Daten abgerufen und dann die Daten gefiltert, sodass die Zuteilungsnutzung 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 Konfiguration aus.

  3. Legen Sie in der Symbolleiste den Zeitraum auf einen Monat fest, indem Sie 1 Mio. auswählen.

  4. Maximieren Sie das Menü Liniendiagramm und wählen Sie Gestapeltes Balkendiagramm aus.

  5. Konfigurieren Sie den Metrics Explorer so, dass die Nutzung des Zuteilungskontingents angezeigt wird:

    1. Klicken Sie auf Messwert auswählen und geben Sie allocation in die Filterleiste ein.
    2. Wählen Sie Nutzerkontingent für die Ressource aus.
    3. Wählen Sie als Messwertkategorie Kontingent aus.
    4. Wählen Sie als Messwert Nutzung von Zuteilungskontingenten aus und klicken Sie auf Anwenden.

    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 anzeigen, indem Sie das Menü Ressourcentyp maximieren und dann Direkter Filtermodus auswählen.

  6. 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 werden jetzt die Zeitachsen für die zugewiesene Kontingentnutzung für Compute Engine-Kontingente angezeigt. Die Legende enthält für jede angezeigte Zeitachse den Wert des Labels quota_metric. Dieser Wert gibt das spezifische Kontingent an. compute.googleapis.com/disks_total_storage gibt beispielsweise die Zeitachse für das gesamte Speicherkontingent von Compute Engine an.

    Im Diagramm wird die Kontingentnutzung nur für Kontingente angezeigt, für die die Nutzung aufgezeichnet 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.

  7. Verwenden Sie den Filter quota_metric = compute.googleapis.com/disks_total_storage, um ein Diagramm zu erstellen, in dem die Nutzung des Compute Engine-Gesamtspeicherkontingents 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"
    
  8. Die vorhergehende Karte zeigt Zeitreihen für die Regionen us-central1 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 und nicht die Zonen angezeigt werden, fügen Sie einen Filter hinzu, der auf dem Label location basiert. In diesem Beispiel, in dem beide Regionen mit dem Präfix us- beginnen und mit 1 enden, eignet sich ein Filter, der den regulären Ausdruck location =~ ^us.*1$ verwendet:

    Nach Kontingentmesswert und Region filtern.

Bei Nutzerkontingenten identifiziert der Wert des Labels quota_metric sowohl den Dienst als auch die konkrete Kontingentnutzung, die überwacht wird. Wenn Sie Diagramme oder Benachrichtigungsrichtlinien erstellen, die einen bestimmten Kontingentmesswert überwachen, verwenden Sie diese Informationen.

Benachrichtigungsrichtlinien in Cloud Monitoring

Mit Benachrichtigungsrichtlinien können Sie Monitoring so konfigurieren, dass Sie benachrichtigt werden, wenn etwas passiert, z. B. das Erreichen von 85% des Kontingents.

Eine Benachrichtigungsrichtlinie ist eine Sammlung von Bedingungen und Benachrichtigungsinformationen:

  • Eine Bedingung beschreibt, was überwacht wird, wie die Zeitachsendaten für diese Ressource kombiniert werden sollen und wann ein Vorfall generiert wird. Eine Benachrichtigungsrichtlinie muss mindestens eine Bedingung angeben.
  • Der Benachrichtigungskanal gibt an, wer bei einem Vorfall benachrichtigt werden soll und wie. Beispielsweise können Sie die Benachrichtigungsrichtlinie so konfigurieren, dass eine E-Mail an eine bestimmte Person oder an eine Gruppe von Personen gesendet wird.

Es gibt zwei Techniken, um Benachrichtigungsrichtlinienbedingungen zu erstellen:

  • 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. Im Beispiel unter Mit Kontingentmesswerten arbeiten werden Filter verwendet, um Daten für ein Diagramm auszuwählen. Sie können Filter auch in Anfragen an die Monitoring API verwenden.

  • MQL zum Auswählen und Bearbeiten von Daten verwenden MQL ist eine textbasierte Abfragesprache. Mit dem MQL-Codeeditor können Sie Abfragen erstellen, die mit der filterbasierten Technik nicht erstellt werden können. Wir empfehlen die Verwendung von MQL zum Erstellen von verhältnisbasierten Benachrichtigungsrichtlinien. Weitere Informationen finden Sie unter Beispiele für MQL-Benachrichtigungsrichtlinien.

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

Beispiele für Filterbenachrichtigungsrichtlinien

In diesem Abschnitt enthält jeder Unterabschnitt eine JSON-Darstellung einer Benachrichtigungsrichtlinie sowie ein Tabellenpaar, in dem beschrieben wird, wie die Richtlinie in der Google Cloud Console konfiguriert wird:

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

Diese Beispiele beziehen sich auf den filterbasierten Ansatz.

Keine dieser Richtlinien berechnet Verhältnisse. Beispiele für verhältnisbasierte Beispiele finden Sie unter Beispiele 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 diese Art von Richtlinie mithilfe der Google Cloud Console oder der Cloud Monitoring API erstellen.

Google Cloud Console verwenden

Der Rest des Inhalts in diesem Unterabschnitt bezieht sich auf das Dialogfeld „Bedingungen“ einer Benachrichtigungsrichtlinie.

Füllen Sie das Dialogfeld Neue Bedingung mit den Einstellungen in der folgenden Tabelle aus. 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.

Dialogfeld Neue Bedingung
Feld

Wert
Ressource und Messwert Wählen Sie im Menü Ressourcen die Option Nutzerkontingent aus.
Wählen Sie im Menü Messwertkategorien die Option Kontingent aus.
Wählen Sie im Menü Messwerte die Option Kontingent überschritten aus.

(metric.type ist serviceruntime.googleapis.com/quota/exceeded,
und resource.type ist consumer_quota.
Filter

Fügen Sie einen Filter hinzu, damit das Diagramm nur Daten für den Dienst anzeigt, den Sie überwachen möchten. Zur Überwachung des Identity and Access Management-Dienstes fügen Sie beispielsweise den folgenden Filter hinzu: service = iam.googleapis.com.

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

Rollierendes Zeitfenster 1 m
auswählen
Funktion für rollierendes Zeitfenster count true
auswählen

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

Für diesen Messwert sind die Funktionen für gleitende Fenster von count true und count gleichwertig.

Über Zeitreihen hinweg
Zeitreihenaggregation

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.

Über Zeitreihen hinweg
Zeitreihen gruppieren nach

Wählen Sie quota_metric aus.

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

Füllen Sie das Dialogfeld Trigger konfigurieren mit den folgenden Einstellungen aus. 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.

Dialogfeld Trigger konfigurieren
Feld

Wert
Bedingungstyp Threshold
Benachrichtigungstrigger Any time series violates
Grenzwertposition Above threshold
Grenzwert 0
Zeitfenster noch einmal testen 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 über die Google Cloud CLI oder 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 diese Art von Richtlinie mithilfe der Google Cloud Console oder der Cloud Monitoring API erstellen.

Google Cloud Console verwenden

Der Rest des Inhalts in diesem Unterabschnitt bezieht sich auf das Dialogfeld „Bedingungen“ einer Benachrichtigungsrichtlinie.

Füllen Sie das Dialogfeld Neue Bedingung mit den Einstellungen in der folgenden Tabelle aus. 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.

Dialogfeld Neue Bedingung
Feld

Wert
Ressource und Messwert Wählen Sie im Menü Ressourcen die Option Nutzerkontingent aus.
Wählen Sie im Menü Messwertkategorien die Option Kontingent aus.
Wählen Sie im Menü Messwerte die Option Nutzung von Zuteilungskontingenten aus.

(metric.type ist serviceruntime.googleapis.com/quota/allocation/usage,
und resource.type ist consumer_quota.
Filter

Fügen Sie einen Filter hinzu, damit das Diagramm nur Daten für den Dienst anzeigt, den Sie überwachen möchten. Zur Überwachung des Identity and Access Management-Dienstes fügen Sie beispielsweise den folgenden Filter hinzu: service = iam.googleapis.com.

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

Rollierendes Zeitfenster 1440 m
auswählen

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

Funktion für rollierendes Zeitfenster next older
auswählen

Die Funktion für das gleitende Zeitfenster wird auf next older festgelegt, um den neuesten gemessenen Wert dieses GAUGE-Messwerts einzubeziehen.

Über Zeitreihen hinweg
Zeitreihenaggregation

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.

Über Zeitreihen hinweg
Zeitreihen gruppieren nach

Wählen Sie quota_metric aus.

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

Füllen Sie das Dialogfeld Trigger konfigurieren mit den folgenden Einstellungen aus. Diese Einstellungen bewirken, dass die Benachrichtigungsrichtlinie eine Benachrichtigung erstellt, wenn der Wert der Zeitachse 2,5 für 1.440 m überschreitet. Der Wert von 1440 m entspricht dem rollierenden Fenster. 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.

Dialogfeld Trigger konfigurieren
Feld

Wert
Bedingungstyp Threshold
Benachrichtigungstrigger Any time series violates
Grenzwertposition Above threshold
Grenzwert 2.5
Zeitfenster noch einmal testen 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 über die Google Cloud CLI oder 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 durch senkrechte Striche verknüpft sind. Mit MQL können Sie leistungsstärkere, flexible Abfragen als mit Monitoring-Filtern erstellen. Wir empfehlen die Verwendung von MQL zum Einrichten von verhältnisbasierten Benachrichtigungsrichtlinien. Mit MQL können Sie beispielsweise ein Verhältnis für die Ratenkontingentnutzung einrichten, wofür die Berechnung des Verhältnisses eines Messgerät-Messwerts (Limit) und eines Delta-Messwerts (Rate) erforderlich ist.

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

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

Benachrichtigungsrichtlinie, die das Verhältnis von Ratenkontingent zum Kontingentlimit überwacht

Das folgende MQL-Abfragemuster beschreibt eine Benachrichtigungsrichtlinie, die eine Benachrichtigung sendet, wenn die minutengenaue Nutzung 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 == 'Limit'
    | 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 Limit für den metric.limit_name durch das Limit, das Sie verfolgen möchten. Informationen zum Suchen nach Limitnamen finden Sie unter Kontingentmesswerte und Limitnamen ermitteln.
  • 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, da dieser bestimmt, wie weit Datenpunkte in den Abfrageergebnissen auseinanderliegen.

Sie können diese Abfrage nicht mit Filtern erstellen.

Benachrichtigungsrichtlinie, die das Verhältnis des Ratenkontingents mit Platzhaltern überwacht

MQL unterstützt das Filtern mit Platzhaltern, regulären Ausdrücken und boolescher Logik. Mit MQL können Sie beispielsweise eine Benachrichtigungsrichtlinie erstellen, die mehrere Limits verfolgt und Sie warnt, wenn eines davon einen Grenzwert überschreitet.

Das folgende MQL-Abfragemuster beschreibt eine Benachrichtigungsrichtlinie, die Benachrichtigungen sendet, wenn die minutengenaue oder tageweise Nutzung eines Ressourcendienstes 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(23hr)
      | 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(23hr), max(val()) }
    | ratio }
| union
| every 1m
| condition gt(val(), 0.8 '1')

In der vorherigen Abfrage ist das Argument für den delta_gauge-Ausrichter auf 23 Stunden anstelle von 1 Tag festgelegt. Für MQL sind nur Daten von 23 Stunden und 30 Minuten erforderlich. Zu Berechnungszwecken fügt der Aligner delta_gauge dem Ausrichtungszeitraum eine Stunde hinzu. Wenn Sie delta_gauge(1d) verwenden, kann die Bedingung nicht gespeichert werden, da sie 25 Stunden an Daten erfordert. Dieses Verhalten unterscheidet sich vom next_older-Aligner, bei dem der Ausrichtungszeitraum nicht aufgefüllt wird.

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

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

Ändern Sie nicht den Vorgang every 1m, da dieser bestimmt, wie weit Datenpunkte in den Abfrageergebnissen auseinanderliegen.

Sie können diese Abfrage nicht mit Filtern erstellen.

Verhältnisbenachrichtigung zur Nutzung des Zuteilungskontingents 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 == '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')

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

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

Ändern Sie nicht den Vorgang every 1m, da dieser bestimmt, wie weit Datenpunkte in den Abfrageergebnissen auseinanderliegen.

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 Nutzerkontingentrichtlinie verwendet den CPUS-per-project-region-Limitnamen im Compute Engine API-Kontingent "CPUs". Informationen zum Suchen nach Limitnamen finden Sie unter Kontingentmesswerte und Limitnamen ermitteln.

Benachrichtigungsrichtlinie, die das Verhältnis des Zuteilungskontingents für einen Dienst überwacht

MQL unterstützt das Filtern mit Platzhaltern, regulären Ausdrücken und boolescher Logik. Beispiel: Mit MQL können Sie 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 den 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, da dieser bestimmt, wie weit Datenpunkte in den Abfrageergebnissen auseinanderliegen.

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

Die folgende Abfrage erstellt eine Benachrichtigungsrichtlinie, die ausgelöst wird, wenn die CPU-Nutzung von Compute Engine-VM-Instanzen in einer der us-central1-Zonen mehr als 50% des Limits erreicht. Mit dieser Abfrage werden die limit-Daten nach einem Limitnamen und dem Ressourcenstandort gefiltert:

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 Nutzerkontingentrichtlinie verwendet den CPUS-per-project-zone-Limitnamen im Compute Engine API-Kontingent "CPUs". Informationen zum Suchen nach Limitnamen finden Sie unter Kontingentmesswerte und Limitnamen ermitteln.

Verhältnisbenachrichtigung mit ressourcenspezifischem Kontingent

Mit MQL können Sie Verhältnisse für ressourcenspezifische kontingentbezogene Messwerte einrichten. In diesem Fall geben Sie eine dienstspezifische überwachte Ressource an und berechnen ein Verhältnis zwischen zwei ressourcenspezifischen kontingentbezogenen Messwerten.

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 zugehörige überwachte Ressource.
  • Ersetzen Sie samplemetric durch den String für eine Gruppe von Messwerttypen.
  • Listen Sie in den group_by-Vorgängen die 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.

Wenn Sie nur ein Diagramm mit Kontingentdaten konfigurieren möchten, können Sie die Einstellungen in der Tabelle Neue Bedingung verwenden. Für Benachrichtigungsbedingungen wird eine andere Notation verwendet als für Diagrammtools. Zu den Diagrammtools gehört der Metrics Explorer und das Konfigurieren von Diagrammen in benutzerdefinierten Dashboards:
Dialogfeld Neue Bedingung
Feldname
Diagramme
Funktion für rollierendes Zeitfenster

Optimal konfiguriert auf Grundlage der ausgewählten Messwert- und Aggregationseinstellungen.

So geben Sie die Ausrichtungsfunktion an:

  1. Maximieren Sie im Element Aggregation das erste Menü und wählen Sie Aligner konfigurieren aus. Die Elemente Ausrichtungsfunktion und Gruppierung werden hinzugefügt.
  2. Maximieren Sie das Element Ausrichtungsfunktion und treffen Sie eine Auswahl.

Rollierendes Zeitfenster Mindestintervall
(Klicken Sie auf Abfrageelement hinzufügen, um darauf zuzugreifen)
Zeitreihen gruppieren nach
(im Abschnitt Über mehrere Zeitreihen)
Zweites Menü des Elements Aggregation
Zeitreihenaggregation
(im Abschnitt Über mehrere Zeitreihen)
Erstes Menü des Elements Aggregation

Zeitachsen für quota/rate/net_usage

Verwenden Sie die folgenden Einstellungen, um die Zeitachsendaten für den serviceruntime-Messwert quota/rate/net_usage für alle Dienste in Ihrem Google Cloud-Projekt anzusehen, bei denen die Daten nach dem Namen des Kontingentmesswerts gruppiert sind und die Nutzungsrate angezeigt wird:

Dialogfeld Neue Bedingung
Feld

Wert
Ressource und Messwert Wählen Sie im Menü Ressourcen die Option Nutzerkontingent aus.
Wählen Sie im Menü Messwertkategorien die Option Kontingent aus.
Wählen Sie im Menü Messwerte die Option Nutzung von Ratenkontingenten aus.

(metric.type ist serviceruntime.googleapis.com/quota/rate/net_usage,
und resource.type ist consumer_quota.
Filter

Fügen Sie einen Filter hinzu, damit das Diagramm nur Daten für den Dienst anzeigt, den Sie überwachen möchten. Zur Überwachung des Identity and Access Management-Dienstes fügen Sie beispielsweise den folgenden Filter hinzu: service = iam.googleapis.com.

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

Rollierendes Zeitfenster 1 m
auswählen

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

Funktion für rollierendes Zeitfenster rate
auswählen

Wenn Sie den Aligner auf den Wert rate setzen, werden die in der Zeitachse für diesen DELTA-Messwert gespeicherten Werte in eine neue Zeitachse umgewandelt, auf der Ratendaten gespeichert werden. Die Y-Achse für das Diagramm enthält die Einheiten des Kontingents pro Sekunde.

Über Zeitreihen hinweg
Zeitreihenaggregation

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.

Über Zeitreihen hinweg
Zeitreihen gruppieren nach

Wählen Sie quota_metric aus.

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

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:

Dialogfeld Neue Bedingung
Feld

Wert
Ressource und Messwert Wählen Sie im Menü Ressourcentyp die Option VPC-Netzwerk aus.
Wählen Sie im Menü Messwertkategorie die Option Kontingent aus.
Wählen Sie im Menü Messwert die Option Kontingentlimit für Instanzen pro VPC-Netzwerk aus.

(metric.type ist compute.googleapis.com/quota/instances_per_vpc_network/limit,
und resource.type ist compute.googleapis.com/VpcNetwork.
Filter Leer lassen
Rollierendes Zeitfenster 1 m
auswählen

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

Funktion für rollierendes Zeitfenster mean
auswählen
Über Zeitreihen hinweg
Zeitreihenaggregation
Als none lassen
Über Zeitreihen hinweg
Zeitreihen gruppieren nach
Leer lassen

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:

Dialogfeld Neue Bedingung
Feld

Wert
Ressource und Messwert Wählen Sie im Menü Ressourcentyp die Option VPC-Netzwerk aus.
Wählen Sie im Menü Messwertkategorie die Option Kontingent aus.
Wählen Sie im Menü Messwert die Option Instanzen pro VPC-Netzwerkkontingentnutzung aus.

(metric.type ist compute.googleapis.com/quota/instances_per_vpc_network/usage,
und resource.type ist compute.googleapis.com/VpcNetwork.
Messwert Wählen Sie im Menü Messwert die Option compute.googleapis.com/quota/instances_per_vpc_network/usage aus.
Filter

Fügen Sie einen Filter hinzu, damit das Diagramm nur einen Teil aller Daten anzeigt. Wenn Sie beispielsweise die Nutzung für ein bestimmtes Netzwerk anzeigen 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.

Rollierendes Zeitfenster 1 m
auswählen

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

Funktion für rollierendes Zeitfenster mean
auswählen
Über Zeitreihen hinweg
Zeitreihenaggregation
Als none lassen
Über Zeitreihen hinweg
Zeitreihen gruppieren nach
Leer lassen

MQL-Diagramme

Sie können MQL-Abfragen verwenden, um mithilfe des MQL-Code-Editors Diagramme zu erstellen. Beispielsweise können alle Abfragen, die in Beispielen für MQL-Benachrichtigungsrichtlinien gezeigt werden, in den Code-Editor eingegeben werden. Sie können bei jeder Abfrage den letzten Vorgang, condition, weglassen. Er gilt, außer beim Erstellen einer Bedingung für eine Benachrichtigungsrichtlinie. In einem Diagramm ist der condition-Vorgang wirkungslos.

Weitere Informationen finden Sie unter Code-Editor für MQLs verwenden und MQL-Beispiele.