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 gauge, gauge et gauge, 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.

Les services Google Cloud ne sont pas tous compatibles avec les métriques de quota. Pour déterminer si un service est compatible avec les métriques de quota et pour identifier les valeurs des étiquettes spécifiques aux quotas, vous pouvez utiliser la procédure suivante:

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez IAM et administration, puis Quotas:

    Accéder à Quotas

  2. Cliquez sur Afficher la colonne et 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 indique la valeur du libellé limit_name.
    • Ressource surveillée: lorsque ce champ est renseigné, le quota utilise la ressource surveillée répertoriée. Si ce champ est vide, la ressource surveillée pour le 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 compute.googleapis.com/subnetworks pour la métrique, SUBNETWORKS-per-project pour le nom de la limite et aucune ressource surveillée n'est indiqué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 Monitoring, 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 M.

  4. Développez le menu Graphique en courbes et 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 et saisissez allocation dans la barre de filtres.
    2. Sélectionnez Quota du client pour la ressource.
    3. Sélectionnez Quota pour la catégorie de métrique.
    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 Cloud 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ù une alerte doit être générée. 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'une alerte se déclenche. 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 des filtres. 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 une représentation JSON d'une règle d'alerte, ainsi que deux 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ù une alerte doit être générée.

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 la console Google Cloud ou de l'API Cloud Monitoring.

Utiliser la console Google Cloud

Le reste du contenu de cette sous-section concerne la boîte de dialogue des conditions d'une règle d'alerte.

Complétez la boîte de dialogue Nouvelle condition en utilisant les paramètres du 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.

Boîte de dialogue Nouvelle condition
Champ

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 de quota.

(Le 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électionner 1 m
Fenêtrage glissant Sélectionner 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êtrage glissant de count true et count sont équivalentes.

Sur plusieurs 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
Grouper 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 la boîte de dialogue Configurer le déclencheur avec les 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 page 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 la console Google Cloud ou de l'API Cloud Monitoring.

Utiliser la console Google Cloud

Le reste du contenu de cette sous-section concerne la boîte de dialogue des conditions d'une règle d'alerte.

Complétez 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.

Boîte de dialogue Nouvelle condition
Champ

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.

(Le 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électionner 1440 m

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

Fenêtrage glissant Sélectionner next older

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

Sur plusieurs 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
Grouper 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 la boîte de dialogue Configurer le déclencheur avec les 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 m correspond à la fenêtre 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 page 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:

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.

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

Le modèle de requête MQL suivant décrit une alerte qui surveille 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 la distance 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 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 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 alerte qui surveille quand 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(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')

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 à l'intervalle 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 l'intervalle 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 23hr 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 la distance 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 la distance 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 n'importe quelle 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.

Alerte de ratio sur l'utilisation du quota d'allocation pour tout 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 la distance 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 uniquement configurer un graphique qui affiche les 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 graphique. Les outils de création de graphiques incluent l'Explorateur de métriques et la configuration des graphiques dans des tableaux de bord personnalisés:
Boîte de dialogue Nouvelle condition
nom du champ
Graphiques
Fenêtrage glissant

Configuration optimale en fonction des métriques et des paramètres 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 et sélectionnez Configurer l'aligneur. Ajout des éléments de fonction d'alignement et de regroupement.
  2. Développez l'élément Fonction d'alignement et sélectionnez-en un.

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 Aggregation (Agrégation)
Agrégation de séries temporelles
(dans la section Sur plusieurs séries temporelles)
Premier menu de l'élément Aggregation (Agrégation)

Série temporelle pour quota/rate/net_usage

Pour afficher les données de séries temporelles de la métrique serviceruntime quota/rate/net_usage, pour tous les services de votre projet Google Cloud, où les données sont regroupées selon le nom de la métrique de quota et le taux d'utilisation affiché, utilisez les paramètres suivants:

Boîte de dialogue Nouvelle condition
Champ

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.

(Le 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électionner 1 m

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

Fenêtrage glissant Sélectionner 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.

Sur plusieurs 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
Grouper 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:

Boîte de dialogue Nouvelle condition
Champ

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

(Le 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électionner 1 m

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

Fenêtrage glissant Sélectionner mean
Sur plusieurs séries temporelles
Agrégation de séries temporelles
Laisser en tant que none
Dans toutes les séries temporelles
Grouper 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:

Boîte de dialogue Nouvelle condition
Champ

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

(Le 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électionner 1 m

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

Fenêtrage glissant Sélectionner mean
Sur plusieurs séries temporelles
Agrégation de séries temporelles
Laisser en tant que none
Dans toutes les séries temporelles
Grouper 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, toutes les requêtes présentées dans les exemples de règles d'alerte MQL peuvent être saisies dans l'éditeur de code. 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 Utiliser l'éditeur de code pour MQL et les exemples de MQL.