Représenter graphiquement et surveiller les métriques de quota

Ce document explique comment créer des règles d'alerte et des graphiques pour surveiller le quota qui vous est attribué par Google Cloud. Il comprend plusieurs exemples. Google Cloud définit divers quotas que vous pouvez utiliser pour suivre et limiter les ressources consommées par un projet ou une organisation. Pour obtenir des informations générales sur les quotas, y compris sur les quotas d'allocation et les quotas de débit, consultez la page Utiliser des quotas.

Avant de commencer

Dans ce document, nous partons du principe que vous connaissez bien les données de séries temporelles et leur manipulation. Les ressources suivantes fournissent des informations supplémentaires :

  • Pour en savoir plus sur l'utilisation des données de séries temporelles, consultez la section Filtrage et agrégation.
  • Pour connaître les définitions des termes jauge, delta et cumulatif, consultez la section Genre de métriques.
  • Pour plus d'informations sur les fonctions utilisées pour combiner des séries temporelles, consultez Aligner et Reducer.

Gestion des quotas

Cloud Monitoring gère les quotas de deux manières:

  • Quota client : pour ce type de quota, la ressource surveillée est consumer_quota. Les métriques de cette ressource constituent un sous-ensemble des métriques serviceruntime.

    La plupart des exemples de cette page sont des exemples de quota client.

  • Quotas spécifiques aux ressources : certains services fournissent des ressources surveillées disposant de métriques spécifiques aux ressources pour les quotas. Ces types de métriques apparaissent par groupes de trois et suivent un format de dénomination :

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

    Par exemple, Compute Engine dispose de la ressource compute.googleapis.com/VpcNetwork. Les métriques liées aux quotas associées à cette ressource correspondent au sous-ensemble compute.googleapis.com/quota des métriques compute. Il existe trois types de métriques liées au quota d'instances par réseau VPC:

Identifier les métriques de quota et les noms de limites

Les données brutes sur la consommation des quotas, en particulier pour les quotas de client, peuvent inclure des informations sur de nombreux quotas différents. Pour extraire des informations sur un quota spécifique pour un graphique ou une règle d'alerte, vous devez identifier ce sous-ensemble de données de quota.

Selon la source, les données de quota peuvent inclure des libellés que vous pouvez utiliser pour isoler les informations souhaitées. Voici des exemples de libellés :

  • Métrique de quota: la métrique de quota est un identifiant pour un type de quota. Elle n'est pas l'un des types de métriques décrits dans la liste des métriques. Par exemple, toutes les données de quotas de consommateurs sont écrites sous le type de métrique serviceruntime.googleapis.com, comme quota/allocation/usage. Ce type de métrique comporte un libellé quota_metric qui peut être utilisé pour filtrer sur un quota spécifique, par exemple les données d'utilisation d'allocation.
  • Nom de la limite: ce nom identifie la limite appliquée à un type spécifique de quota. Un quota peut être associé à plusieurs limites. Par exemple, un quota pour les appels en lecture peut être limité à 100 par minute et à 1 000 par jour, avec deux noms de limites, readsPerMinute et readsPerDay. Les types de métriques liées aux quotas peuvent comporter un champ limit_name pour cette valeur.

Tous les types de métriques serviceruntime.googleapis.com/quota fournissent le libellé quota_metric, mais seulement certains incluent le libellé limit_name. Les types de métriques spécifiques aux ressources pour le quota incluent le libellé limit_name.

Tous les services Google Cloud ne sont pas compatibles avec les métriques de quota. Pour déterminer si un service est compatible avec les métriques de quota et identifier les valeurs des libellés spécifiques aux quotas, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Quotas et limites du système:

    Accéder à Quotas et limites du système

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

  2. Cliquez sur Afficher une colonne, puis ajoutez les colonnes suivantes à l'affichage des quotas:

    • Métrique: cette colonne affiche la valeur du libellé quota_metric.
    • Nom de la limite: cette colonne affiche la valeur du libellé limit_name.
    • Ressource surveillée: lorsque ce champ est renseigné, le quota utilise la ressource surveillée listée. Lorsqu'il est vide, la ressource surveillée du quota est consumer_quota.
  3. Recherchez le quota qui vous intéresse.

    Par exemple, le quota des sous-réseaux de l'API Compute Engine indique la métrique comme compute.googleapis.com/subnetworks, le nom de la limite comme SUBNETWORKS-per-project et ne liste pas de ressource surveillée. Par conséquent, la ressource surveillée pour ce quota est consumer_quota.

Exemple : Afficher l'utilisation d'une métrique de quota client spécifique

L'objectif est de créer un graphique qui affiche le quota de stockage total de disque de Compute Engine, par région. Cet exemple de quota de client récupère les données quota/allocation/usage, puis les filtre afin que l'utilisation d'allocation pour une métrique de quota spécifique s'affiche:

  1. Dans la console Google Cloud, sélectionnez "Cloud Monitoringquot;, puis "Explorateur de métriques".

  2. Accédez à l'onglet Configuration.

  3. Dans la barre d'outils, définissez la période sur un mois en sélectionnant 1 mois.

  4. Développez le menu Graphique en courbes, puis sélectionnez Graphique à barres empilées.

  5. Configurez l'explorateur de métriques pour afficher l'utilisation du quota d'allocation'allocation:

    1. Cliquez sur Sélectionner une métrique, puis saisissez allocation dans la barre de filtre .
    2. Sélectionnez Quota du client pour la ressource.
    3. Sélectionnez Quota pour la catégorie de métriques.
    4. Sélectionnez Utilisation du quota d'allocation pour la métrique, puis cliquez sur Appliquer.

    Sélection du quota du client.

    Le graphique affiche, sous forme de graphique à barres, l'utilisation du quota d'allocation sur une période de six semaines. Les différents services représentés sur le graphique sont répertoriés dans la légende.

    Si vous utilisez l'API Cloud Monitoring, la valeur de filtre correspondante est la suivante :

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

    Vous pouvez afficher cette valeur de filtre en développant le menu Type de ressource, puis en sélectionnant Mode de filtrage direct.

  6. Pour limiter le graphique au service Compute Engine, ajoutez le filtre service = compute.googleapis.com :

    Filtrage du quota de client sur le service Compute Engine.

    Si vous utilisez l'API Cloud Monitoring, la valeur de filtre correspondante est la suivante :

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

    Le graphique affiche maintenant les séries temporelles associées à l'utilisation du quota d'allocation pour ce qui concerne les quotas Compute Engine. Pour chaque série temporelle, la valeur du libellé quota_metric est affichée dans la légende. Cette valeur identifie chacun des quotas. Par exemple, compute.googleapis.com/disks_total_storage identifie la série temporelle du quota de stockage total sur disque de Compute Engine.

    Le graphique ne montre l'utilisation des quotas que pour ceux qui ont enregistré une utilisation. Par exemple, si le projet ne dispose d'aucune ressource Compute Engine, le filtrage du service compute.googleapis.com génère un graphique sans données.

  7. Pour créer un graphique indiquant l'utilisation totale du quota de stockage sur disque de Compute Engine, utilisez le filtre quota_metric = compute.googleapis.com/disks_total_storage:

    Filtrage du quota de client sur la métrique de quota.

    Si vous utilisez l'API Cloud Monitoring, la valeur de filtre correspondante est la suivante :

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" metric.label.quota_metric="compute.googleapis.com/disks_total_storage"
    
  8. Le graphique précédent affiche les séries temporelles pour les régions us-central1 et us-east1, ainsi que pour plusieurs zones, y compris la zone us-central1-a.

    Pour affiner le graphique afin qu'il n'affiche que les données des régions, sans les zones, ajoutez un filtre basé sur le libellé location. Dans cet exemple, où les deux régions commencent par us- et se terminent par 1, un filtre utilisant une expression régulière, en l'occurrence location =~ ^us.*1$, fonctionne bien :

    Filtrage sur la métrique de quota et sur la région.

Pour le quota de client, la valeur du libellé quota_metric identifie à la fois le service et l'utilisation spécifique du quota surveillé. Lorsque vous créez des graphiques ou des règles d'alerte qui surveillent une métrique de quota spécifique, vous utilisez cette information.

Règles d'alerte dans Cloud Monitoring

Les règles d'alerte permettent de configurer Monitoring pour vous avertir lorsqu'un événement se produit, par exemple lorsque vous atteignez 85% de votre limite de quota.

Une règle d'alerte est un ensemble de conditions et d'informations de notification :

  • Une condition décrit ce qui est surveillé, comment les données de séries temporelles de cette ressource doivent être combinées et le moment où un incident est généré. Une règle d'alerte doit spécifier au moins une condition.
  • Le canal de notification indique qui doit être averti et comment il doit être averti lorsqu'un incident se produit. Par exemple, vous pouvez configurer la règle d'alerte pour qu'elle envoie des e-mails à une personne spécifique ou à un groupe de personnes.

Vous pouvez utiliser deux techniques pour créer des conditions de règle d'alerte:

  • Sélection et manipulation des données à l'aide des filtres Monitoring. Par exemple, lorsque vous utilisez l'interface graphique pour créer des conditions de règle d'alerte, vous créez des filtres. L'exemple présenté dans la section Utiliser des métriques de quota utilise des filtres pour sélectionner les données d'un graphique. Vous pouvez également utiliser des filtres dans les requêtes adressées à l'API Monitoring.

  • Utilisation de MQL pour sélectionner et manipuler des données. MQL est un langage de requête basé sur le texte. L'éditeur de code MQL vous permet de créer des requêtes que vous ne pouvez pas créer avec la technique basée sur un filtre. Nous vous recommandons d'utiliser MQL pour créer des règles d'alerte basées sur un ratio. Pour en savoir plus, consultez la section Exemples de règles d'alerte MQL.

Cette page traite des deux techniques. Vous pouvez également créer des graphiques à l'aide de l'une ou l'autre technique.

Filtrer les exemples de règles d'alerte

Dans cette section, chaque sous-section inclut la représentation JSON d'une règle d'alerte, ainsi qu'une paire de tables décrivant comment configurer la règle dans la console Google Cloud:

  • Le premier tableau décrit ce qui est surveillé et la manière dont les données doivent être combinées.
  • Le deuxième tableau indique le moment où un incident doit être généré.

Ces exemples concernent l'approche basée sur des filtres.

Aucune de ces règles ne calcule des ratios. Pour obtenir des exemples basés sur des ratios, consultez les exemples de règles d'alerte MQL.

Alertes sur les erreurs quota/exceeded

Vous pouvez créer des règles d'alerte pour vous avertir si un service de votre projet Google Cloud signale une erreur de dépassement de quota. Vous pouvez créer ce type de règle à l'aide de Google Cloud Console ou de l'API Cloud Monitoring.

Utiliser la console Google Cloud

La suite de cette sous-section concerne la boîte de dialogue des conditions d'une règle d'alerte.

Remplissez la boîte de dialogue Nouvelle condition à l'aide des paramètres indiqués dans le tableau suivant. Ces paramètres indiquent que vous souhaitez surveiller l'erreur /quota/exceeded dans les données de la série temporelle pour la métrique serviceruntime pour tous les services de votre projet Google Cloud, et que vous souhaitez regrouper les données par limite de quota.

Champ de la boîte de dialogue Nouvelle condition

Valeur
Ressource et métrique Dans le menu Ressources, sélectionnez Quota du client.
Dans le menu Catégories de métriques, sélectionnez Quota.
Dans le menu Métriques, sélectionnez Erreur de dépassement du quota.

(metric.type est serviceruntime.googleapis.com/quota/exceeded,
et resource.type est consumer_quota).
Filter

Ajoutez un filtre pour que le graphique affiche uniquement les données du service que vous souhaitez surveiller. Par exemple, pour surveiller le service de gestion de l'authentification et des accès, ajoutez le filtre suivant : service = iam.googleapis.com.

Lorsque le champ de filtre est vide, toutes les données de métriques disponibles sont incluses dans le graphique.

Fenêtre glissante Sélectionnez 1 m
.
Fenêtrage glissant Sélectionnez count true
.

Cette métrique est de type GAUGE, ce qui signifie que chaque point de données de la série temporelle est une mesure instantanée. Le type de valeur est BOOL. La valeur true indique que le quota a été dépassé.

Pour cette métrique, les fonctions de fenêtre glissante de count true et count sont équivalentes.

Dans toutes les séries temporelles
Agrégation de séries temporelles

Sélectionnez sum.

Le champ d'agrégation est automatiquement défini sur sum lorsque les données sont regroupées. Ce paramètre définit la façon dont les données de chaque série temporelle sont combinées.

Dans toutes les séries temporelles
Regrouper les séries temporelles par

Sélectionnez quota_metric.

Cette option regroupe les données en fonction du type de nom de l'élément quota_metric.

Renseignez les champs de la boîte de dialogue Configurer le déclencheur à l'aide des paramètres suivants. Ces paramètres entraînent la création d'une alerte par la règle d'alerte si le nombre d'erreurs de dépassement de quota dépasse un seuil de 0 pendant une minute. Dans le cas présent, la valeur 0 est sélectionnée, car les erreurs de dépassement de quota sont inattendues, et indiquent qu'un quota doit être augmenté ou qu'un service doit être modifié pour réduire les requêtes API. Vous pouvez utiliser un seuil plus élevé.

Champ de la boîte de dialogue Configurer le déclencheur

Valeur
Type de condition Threshold
Déclencheur d'alerte Any time series violates
Position du seuil Above threshold
Valeur du seuil 0
Fenêtre du nouveau test 1 m

Utiliser l'API Cloud Monitoring

Vous pouvez créer cette règle d'alerte à l'aide de la méthode API alertPolicies.create. Vous pouvez appeler l'API Cloud Monitoring directement à l'aide de Google Cloud CLI ou de bibliothèques clientes. Pour en savoir plus, consultez la section Créer des règles.

Pour en savoir plus sur l'écriture des règles d'alerte au format JSON ou YAML, consultez la page Exemples de règles.

Voici une représentation de cette règle d'alerte au format JSON :


{
    "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",
  }

Alertes sur la valeur absolue quota/allocation/usage

Vous pouvez créer une règle d'alerte pour vous avertir si l'utilisation du quota d'allocation pour un service spécifique de votre projet Google Cloud dépasse un seuil défini par l'utilisateur. Vous pouvez créer ce type de règle à l'aide de Google Cloud Console ou de l'API Cloud Monitoring.

Utiliser la console Google Cloud

La suite de cette sous-section concerne la boîte de dialogue des conditions d'une règle d'alerte.

Remplissez la boîte de dialogue Nouvelle condition à l'aide des paramètres indiqués dans le tableau suivant. Ces paramètres indiquent que vous souhaitez surveiller l'erreur /quota/allocation/usage dans les données de la série temporelle pour la métrique serviceruntime pour un service de votre projet Google Cloud, et que vous souhaitez regrouper les données par limite de quota.

Champ de la boîte de dialogue Nouvelle condition

Valeur
Ressource et métrique Dans le menu Ressources, sélectionnez Quota du client.
Dans le menu Catégories de métriques, sélectionnez Quota.
Dans le menu Métriques, sélectionnez Utilisation du quota d'allocation.

(metric.type est serviceruntime.googleapis.com/quota/allocation/usage,
et resource.type est consumer_quota).
Filter

Ajoutez un filtre pour que le graphique affiche uniquement les données du service que vous souhaitez surveiller. Par exemple, pour surveiller le service de gestion de l'authentification et des accès, ajoutez le filtre suivant : service = iam.googleapis.com.

Lorsque le champ de filtre est vide, toutes les données de métriques disponibles sont incluses dans le graphique.

Fenêtre glissante Sélectionnez 1440 m.

La période correspond à l'intervalle d'échantillonnage pour cette métrique.

Fenêtrage glissant Sélectionnez next older
.

La fenêtrage glissante est définie sur next older pour inclure la valeur mesurée la plus récente de cette métrique GAUGE.

Dans toutes les séries temporelles
Agrégation de séries temporelles

Sélectionnez sum.

Le champ d'agrégation est automatiquement défini sur sum lorsque les données sont regroupées. Ce paramètre définit la façon dont les données de chaque série temporelle sont combinées.

Dans toutes les séries temporelles
Regrouper les séries temporelles par

Sélectionnez quota_metric.

Cette option regroupe les données en fonction du type de nom de l'élément quota_metric.

Renseignez les champs de la boîte de dialogue Configurer le déclencheur à l'aide des paramètres suivants. Ces paramètres entraînent la création d'une alerte par la règle d'alerte si la valeur de la série temporelle dépasse 2,5 pendant 1 440 minutes. La valeur de 1 440 minutes correspond à la période glissante. La valeur de 2,5 a été sélectionnée dans cet exemple, car elle est légèrement supérieure à la valeur normale du système de test. Vous devez sélectionner le seuil en fonction du service que vous surveillez en association avec une analyse de la plage de valeurs attendue pour la métrique.

Champ de la boîte de dialogue Configurer le déclencheur

Valeur
Type de condition Threshold
Déclencheur d'alerte Any time series violates
Position du seuil Above threshold
Valeur du seuil 2.5
Fenêtre du nouveau test 1440 m

Utiliser l'API Cloud Monitoring

Vous pouvez créer cette règle d'alerte à l'aide de la méthode API alertPolicies.create. Vous pouvez appeler l'API Cloud Monitoring directement à l'aide de Google Cloud CLI ou de bibliothèques clientes. Pour en savoir plus, consultez la section Créer des règles.

Pour en savoir plus sur l'écriture des règles d'alerte au format JSON ou YAML, consultez la page Exemples de règles.

Voici une représentation de cette règle d'alerte au format JSON :


{
    "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",
  }

Exemples de règles d'alerte MQL

MQL est un langage de requête de type textuel qui utilise une série d'opérations liées par des barres verticales. MQL vous permet de créer des requêtes plus puissantes et flexibles que celles que vous pouvez créer avec des filtres Monitoring. Nous vous recommandons d'utiliser MQL pour configurer des règles d'alerte basées sur un ratio. Par exemple, avec MQL, vous pouvez configurer un ratio pour l'utilisation du quota de débit, ce qui nécessite de calculer le ratio d'une métrique de jauge (limite) et d'une métrique delta (taux).

Vous pouvez créer des règles d'alerte basées sur MQL à l'aide de la console Google Cloud ou de l'API Monitoring:

  • Console Google Cloud: utilisez l'éditeur de code MQL lorsque vous créez la condition d'alerte. Pour afficher l'éditeur de code, cliquez sur  Éditeur de requête dans la barre d'outils de la boîte de dialogue Créer une règle d'alerte. Pour en savoir plus sur l'utilisation de cet éditeur, consultez la section Utiliser l'éditeur de code pour MQL.

  • API Monitoring: utilisez la méthode alertPolicies.create et indiquez une condition du type MonitoringQueryLanguageCondition. Ce type de condition utilise une requête MQL en tant que valeur de champ. Pour en savoir plus sur l'utilisation de l'API Monitoring avec MQL, consultez la page Créer des conditions pour les règles d'alerte MQL.

Pour en savoir plus sur MQL, consultez la page Utiliser le langage de requête Monitoring. Pour en savoir plus sur les règles d'alerte basées sur MQL, consultez la section Règles d'alerte avec MQL.

Règle d'alerte qui surveille le ratio entre le quota de débit et la limite de quota

Le modèle de requête MQL suivant décrit une règle d'alerte qui envoie une notification lorsque l'utilisation du débit par minute d'un service de ressources spécifique dépasse 80% d'une limite donnée:

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')

Pour utiliser ce modèle de requête, apportez les modifications suivantes:

  • Remplacez sample.googleapis.com par le service que vous souhaitez surveiller.
  • Remplacez Limit pour metric.limit_name par la limite que vous souhaitez suivre. Pour savoir comment identifier les noms des limites, consultez la section Identifier les métriques de quota et les noms des limites.
  • Remplacez 1m dans les fonctions delta_gauge et sliding par une fenêtre appropriée pour votre limite.

Ne modifiez pas l'opération every 1m, qui détermine l'écart entre les points de données dans les résultats de la requête.

Vous ne pouvez pas créer cette requête avec des filtres.

Règle d'alerte qui surveille le ratio du quota de débit avec des caractères génériques

MQL accepte le filtrage à l'aide de caractères génériques, d'expressions régulières et de logique booléenne. Par exemple, vous pouvez utiliser MQL pour créer une règle d'alerte qui suit plusieurs limites et vous avertit si une limite est dépassée.

Le modèle de requête MQL suivant décrit une règle d'alerte qui envoie des notifications lorsque l'utilisation des débits par minute ou par jour des services de ressources dépasse 80%:

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(23h)
      | 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(23h), max(val()) }
    | ratio }
| union
| every 1m
| condition gt(val(), 0.8 '1')

Dans la requête précédente, l'argument de l'aligneur delta_gauge est défini sur 23 heures au lieu d'un jour. MQL ne peut exiger que 23 heures et 30 minutes de données. À des fins de calcul, l'aligneur delta_gauge ajoute une heure à la période d'alignement. Si vous utilisez delta_gauge(1d), la condition ne peut pas être enregistrée, car elle exige 25 heures de données. Ce comportement est différent de l'aligneur next_older, qui ne remplit pas la période d'alignement.

Pour utiliser ce modèle de requête, apportez les modifications suivantes:

  • Remplacez l'expression régulière du resource.service par une expression régulière pour les services que vous souhaitez suivre.
  • Dans le premier ratio :
    • Remplacez .*PerMinute.* pour metric.limit_name par une expression régulière pour le premier groupe de limites que vous souhaitez suivre. Pour savoir comment identifier les noms des limites, consultez la section Identifier les métriques de quota et les noms des limites.
    • Remplacez 1m dans les fonctions delta_gauge et sliding par une fenêtre adaptée à vos limites.
  • Dans le deuxième ratio :
    • Remplacez .*PerDay.* pour la valeur metric.limit_name par une expression régulière pour le deuxième groupe de limites que vous souhaitez suivre.
    • Remplacez 23h dans les fonctions delta_gauge et sliding par une fenêtre adaptée à vos limites.

Ne modifiez pas l'opération every 1m, qui détermine l'écart entre les points de données dans les résultats de la requête.

Vous ne pouvez pas créer cette requête avec des filtres.

Alerte de ratio sur l'utilisation du quota d'allocation pour une limite

Le modèle de requête MQL suivant décrit une alerte qui surveille lorsque l'utilisation quotidienne de l'allocation d'un service de ressources spécifique dépasse 80% d'une limite donnée:

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')

Pour utiliser ce modèle de requête, apportez les modifications suivantes:

  • Remplacez sample.googleapis.com par le service que vous souhaitez surveiller.
  • Remplacez Limit pour metric.limit_name par la limite que vous souhaitez suivre. Pour savoir comment identifier les noms des limites, consultez la section Identifier les métriques de quota et les noms des limites.

Ne modifiez pas l'opération every 1m, qui détermine l'écart entre les points de données dans les résultats de la requête.

Exemple: Utilisation du processeur de 75% dans une région

La requête suivante crée une règle d'alerte qui se déclenche lorsque l'utilisation du processeur de l'instance de VM Compute Engine dépasse 75% de la limite dans une région:

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')

Cette règle de quota de client utilise le nom de la limite CPUS-per-project-region dans le quota "Processeurs" de l'API Compute Engine. Pour en savoir plus sur la recherche des noms de limite, consultez la section Identifier les métriques de quota et les noms de limite.

Règle d'alerte qui surveille le ratio du quota d'allocation pour un service

MQL accepte le filtrage avec des caractères génériques, des expressions régulières et une logique booléenne. Par exemple, vous pouvez utiliser MQL pour créer une alerte qui suit plusieurs limites ou services et vous avertit si un seuil est dépassé.

La requête MQL suivante décrit une alerte qui surveille lorsque l'utilisation quotidienne de l'allocation d'un service de ressources dépasse 80% pour toute limite de quota:

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')

Vous pouvez utiliser cette requête comme présenté ou remplacer l'expression régulière de resource.service par une expression régulière pour les services que vous souhaitez suivre. Vous pouvez également filtrer sur un service spécifique et utiliser des caractères génériques dans un filtre de limite.

Ne modifiez pas l'opération every 1m, qui détermine l'écart entre les points de données dans les résultats de la requête.

Exemple: Utilisation du processeur supérieure à 50% dans des zones spécifiques

La requête suivante crée une règle d'alerte qui se déclenche lorsque l'utilisation du processeur des instances de VM Compute Engine dépasse 50% de la limite dans l'une des zones us-central1. Cette requête filtre les données limit par nom de limite et emplacement de ressource:

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')

Cette règle de quota de client utilise le nom de la limite CPUS-per-project-zone dans le quota "Processeurs" de l'API Compute Engine. Pour en savoir plus sur la recherche des noms de limite, consultez la section Identifier les métriques de quota et les noms de limite.

Alerte de ratio utilisant un quota spécifique à la ressource

Vous pouvez utiliser MQL pour configurer des ratios pour les métriques liées aux quotas spécifiques aux ressources. Dans ce cas, vous spécifiez une ressource surveillée spécifique au service et calculez un ratio sur une paire de métriques spécifiques à la ressource liées aux quotas.

Le modèle de requête suivant décrit une alerte qui surveille lorsque l'utilisation d'un quota dépasse 80% de la limite:

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')

Pour utiliser ce modèle de requête, apportez les modifications suivantes:

  • Remplacez sample.googleapis.com par le service que vous souhaitez surveiller.
  • Remplacez sampleResource par la ressource surveillée associée.
  • Remplacez samplemetric par la chaîne d'un groupe de types de métriques.
  • Dans les opérations group_by, répertoriez chacun des libellés de ressource et de métrique.

Exemple: Utilisation du processeur de 75% dans une région

Par exemple, la requête MQL suivante configure une alerte qui surveille si l'utilisation du quota instances_per_vpc_network de Compute Engine dépasse 80% pour tout ID réseau:

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')

Notez que cette requête utilise le type de ressource compute.googleapis.com/VpcNetwork, et non consumer_quota, et elle prend le ratio de deux métriques compute.googleapis.com/quota/instances_per_vpc_network, et usage et limit. (Installation de Python groupée).

Exemples de graphiques

Les graphiques affichent les données de séries temporelles. Vous pouvez utiliser l'explorateur de métriques pour créer un graphique. Avec l'explorateur de métriques, vous pouvez soit supprimer le graphique lorsque vous n'en avez plus besoin, soit l'enregistrer dans un tableau de bord. Dans la vue de tableau de bord, vous pouvez ajouter un graphique au tableau de bord.

Si vous souhaitez configurer uniquement un graphique qui affiche des données de quota, vous pouvez utiliser les paramètres du tableau Nouvelle condition. Les conditions d'alerte utilisent une notation différente de celle des outils de création de graphiques. Les outils de création de graphiques incluent l'explorateur de métriques et la configuration de graphiques dans les tableaux de bord personnalisés:
Nom du champ de la boîte de dialogue Nouvelle condition
Graphiques
Fenêtrage glissant

Configuration optimale en fonction des paramètres de métrique et d'agrégation sélectionnés.

Pour spécifier la fonction d'alignement, procédez comme suit:

  1. Dans l'élément Agrégation, développez le premier menu, puis sélectionnez Configurer l'aligneur. Les éléments Fonction d'alignement et Regroupement sont ajoutés.
  2. Développez l'élément Fonction d'alignement, puis effectuez une sélection.

Fenêtre glissante Intervalle minimal
(pour y accéder, cliquez sur Ajouter un élément de requête)
Regrouper les séries temporelles par
(dans la section Dans toutes les séries temporelles)
Deuxième menu de l'élément Agrégation
Agrégation de séries temporelles
(dans la section Dans toutes les séries temporelles)
Premier menu de l'élément Agrégation

Série temporelle pour quota/rate/net_usage

Pour afficher les données de la série temporelle de la métrique serviceruntime quota/rate/net_usage dans laquelle les données sont regroupées par nom de métrique de quota et le taux d'utilisation est affiché, pour tous les services de votre projet Google Cloud, utilisez les paramètres suivants :

Champ de la boîte de dialogue Nouvelle condition

Valeur
Ressource et métrique Dans le menu Ressources, sélectionnez Quota du client.
Dans le menu Catégories de métriques, sélectionnez Quota.
Dans le menu Métriques, sélectionnez Utilisation du quota de débit.

(metric.type est serviceruntime.googleapis.com/quota/rate/net_usage,
et resource.type est consumer_quota).
Filter

Ajoutez un filtre pour que le graphique affiche uniquement les données du service que vous souhaitez surveiller. Par exemple, pour surveiller le service de gestion de l'authentification et des accès, ajoutez le filtre suivant : service = iam.googleapis.com.

Lorsque le champ de filtre est vide, toutes les données de métriques disponibles sont incluses dans le graphique.

Fenêtre glissante Sélectionnez 1 m.

La période d'une minute correspond à l'intervalle d'échantillonnage pour cette métrique.

Fenêtrage glissant Sélectionnez rate
.

En définissant l'aligneur sur la valeur rate, les valeurs stockées dans la série temporelle pour cette métrique DELTA sont converties en une nouvelle série temporelle qui stocke les données de débit. L'axe des ordonnées du graphique comporte les unités de quota par seconde.

Dans toutes les séries temporelles
Agrégation de séries temporelles

Sélectionnez sum.

Le champ d'agrégation est automatiquement défini sur sum lorsque les données sont regroupées. Ce paramètre définit la façon dont les données de chaque série temporelle sont combinées.

Dans toutes les séries temporelles
Regrouper les séries temporelles par

Sélectionnez quota_metric.

Cette option regroupe les données en fonction du type de nom de l'élément quota_metric.

Série temporelle pour quota/instances_per_vpc_network/limit

Pour afficher les données de séries temporelles de la métrique compute.googleapis.com quota/instances_per_vpc_network/limit, pour tous les réseaux de votre projet Google Cloud, utilisez les paramètres suivants:

Champ de la boîte de dialogue Nouvelle condition

Valeur
Ressource et métrique Dans le menu Resource type (Type de ressource), sélectionnez VPC Network (Réseau VPC).
Dans le menu Catégorie de métrique, sélectionnez quota.
Dans le menu Métrique, sélectionnez Limite de quota d'instances par réseau VPC.

(metric.type est compute.googleapis.com/quota/instances_per_vpc_network/limit,
et resource.type est compute.googleapis.com/VpcNetwork).
Filter Laisser ce champ vide.
Fenêtre glissante Sélectionnez 1 m.

La période correspond à l'intervalle d'échantillonnage pour cette métrique.

Fenêtrage glissant Sélectionnez mean
.
Dans toutes les séries temporelles
Agrégation de séries temporelles
Laisser en tant que none
Dans toutes les séries temporelles
Regrouper les séries temporelles par
Laisser ce champ vide.

Série temporelle pour quota/instances_per_vpc_network/usage

Pour afficher les données de séries temporelles de la métrique compute.googleapis.com quota/instances_per_vpc_network/usage, pour l'un des réseaux de votre projet Google Cloud, utilisez les paramètres suivants:

Champ de la boîte de dialogue Nouvelle condition

Valeur
Ressource et métrique Dans le menu Resource type (Type de ressource), sélectionnez VPC Network (Réseau VPC).
Dans le menu Catégorie de métrique, sélectionnez quota.
Dans le menu Métrique, sélectionnez Instances par utilisation du quota de réseau VPC.

(metric.type est compute.googleapis.com/quota/instances_per_vpc_network/usage,
et resource.type est compute.googleapis.com/VpcNetwork).
Métrique Dans le menu Métrique, sélectionnez compute.googleapis.com/quota/instances_per_vpc_network/usage.
Filter

Ajoutez un filtre afin que le graphique n'affiche qu'un sous-ensemble de toutes les données. Par exemple, pour afficher l'utilisation d'un réseau spécifique, ajoutez le filtre suivant : network_id = identifier.

Lorsque le champ de filtre est vide, toutes les données de métriques disponibles sont incluses dans le graphique.

Fenêtre glissante Sélectionnez 1 m.

La période correspond à l'intervalle d'échantillonnage pour cette métrique.

Fenêtrage glissant Sélectionnez mean
.
Dans toutes les séries temporelles
Agrégation de séries temporelles
Laisser en tant que none
Dans toutes les séries temporelles
Regrouper les séries temporelles par
Laisser ce champ vide.

Graphiques MQL

Vous pouvez utiliser des requêtes MQL pour créer des graphiques à l'aide de l'éditeur de code MQL. Par exemple, vous pouvez y saisir l'une des requêtes affichées dans les exemples de règle d'alerte MQL. Vous pouvez omettre la dernière opération, condition, dans chaque requête. elle s'applique, sauf lors de la création d'une condition pour une règle d'alerte. Dans un graphique, l'opération condition n'a aucun effet.

Pour en savoir plus, consultez les pages Utiliser l'éditeur de code pour MQL et Exemples MQL.