Composants du modèle de métrique

Le modèle de surveillance des données de Cloud Monitoring comprend trois concepts principaux :

  • Types de ressources surveillées
  • Types de métriques
  • Séries temporelles

Le document Modèle de métrique décrit ces concepts Cloud Monitoring en termes généraux. Si ces concepts ne sont pas nouveaux pour vous, commencez par lire cette page.

La présente page décrit plus en détail les types de métriques, les ressources surveillées et les séries temporelles, ainsi que certains concepts associés. Ces concepts sont sous-jacents à toutes les métriques Monitoring.

Nous vous recommandons de comprendre les informations de cette page si vous souhaitez effectuer l'une des opérations suivantes:

Pour en savoir plus sur ces concepts et leur correspondance avec l'API Cloud Monitoring, consultez la page Structure des séries temporelles, en particulier si vous prévoyez d'utiliser l'API Monitoring ou des métriques personnalisées.

Un mot sur les libellés

Les types de ressources surveillées et les types de métriques prennent en charge les libellés, ce qui permet de classer les données lors de l'analyse. Exemple :

  • Un type de ressource surveillée pour une machine virtuelle peut inclure des libellés correspondant à l'emplacement de la machine et à l'ID de projet associé à la machine. Lorsque des informations sur la ressource surveillée sont enregistrées, elles incluent les valeurs des libellés. Une ressource surveillée peut également comporter des libellés de métadonnées fournis par le système ou l'utilisateur, en plus des libellés définis pour le type de ressource surveillée.
  • Un type de métrique qui compte les requêtes API peut avoir des libellés pour enregistrer le nom de la méthode appelée et l'état de la requête.

L'utilisation des libellés est décrite plus en détail dans la section Libellés.

Types de ressources surveillées

Une ressource surveillée est une ressource à partir de laquelle les données de métrique sont capturées. Cloud Monitoring accepte environ 270 types de ressources surveillées.

Les types de ressources surveillées incluent des nœuds et des tâches génériques, des composants architecturaux dans Google Kubernetes Engine, des tables dans Bigtable, diverses ressources AWS, et bien plus encore.

Chaque type de ressource surveillée est officiellement décrit dans une structure de données appelée descripteur de ressources surveillées. Pour en savoir plus, consultez la page Descripteurs de ressources surveillées.

Chacun des types de ressources surveillées compatibles contient une entrée dans la liste des ressources surveillées. Les entrées de la liste sont créées à partir des descripteurs de ressources surveillées. Cette section décrit les informations capturées dans un descripteur de ressource surveillée et montre comment elles sont présentées dans la liste.

Exemple de type de ressources surveillées

L'image suivante illustre l'entrée de la liste correspondant à un bucket Cloud Storage:

Entrée de la liste pour le bucket Cloud Storage.

Toutes les entrées de la liste incluent les informations suivantes :

  • Type : l'en-tête de l'entrée répertorie le type de ressource surveillée, gcs_bucket dans le cas présent.
  • Display name (Nom à afficher) : brève description de la ressource surveillée.
  • Description : description plus longue de la ressource surveillée.
  • Libellés : ensemble de dimensions permettant de classer les données. Pour plus d'informations, consultez la section Libellés.

Types de métriques

Un type de métrique décrit les mesures pouvant être collectées à partir d'une ressource surveillée. Un type de métrique inclut une description de ce qui est mesuré et comment les mesures sont interprétées. Cloud Monitoring accepte environ 6 500 types de métriques et vous permet de définir de nouveaux types.

Les types de métriques incluent le nombre d'appels d'API, les statistiques d'utilisation du disque, la consommation de l'espace de stockage, etc.

Chaque type de métrique est officiellement décrit dans une structure de données appelée descripteur de la métrique. Pour en savoir plus, consultez la section Descripteurs de métriques.

Chacun des types de métriques intégrés possède une entrée dans la liste des métriques. Les entrées de ces tables sont créées à partir des descripteurs de métriques. Cette section décrit les informations capturées dans un type de métrique et montre comment elles sont présentées dans la documentation de référence.

Exemple de type de métriques

L'image suivante montre une entrée pour un type de métrique Cloud Storage:

Extrait de la liste des métriques pour Cloud Storage.

Les types de métriques sont affichés dans une table, dont l'en-tête explique la disposition des informations. Cette section utilise une entrée comme exemple, mais toutes les tables utilisent le même format.

L'exemple d'entrée de table Cloud Storage fournit les informations suivantes sur un type de métrique :

  • Metric type (Type de métrique) : identifiant du type de métrique, storage.googleapis.com/api/request_count dans le cas présent.

    Le préfixe storage.googleapis.com fait office d'espace de noms pour Cloud Storage. Tous les types de métriques associés à un type de ressource surveillée spécifique utilisent le même espace de noms.

    Les espaces de noms sont omis dans les entrées des tables.

    Tous les types de métriques associés à Cloud Storage sont répertoriés dans la table des métriques Cloud Storage.

  • Launch stage (Étape de lancement) : bloc de couleur indiquant l'étape de lancement du type de métrique à l'aide d'une valeur telle que "Alpha", "Beta" (Bêta) et "GA" (Disponibilité générale).

  • Display name (Nom à afficher) : brève chaîne décrivant le type de métrique, "Request count" (Nombre de requêtes) dans le cas présent.

  • Kind, Type, Unit (Genre, Type, Unité) : cette ligne fournit des informations permettant d'interpréter les valeurs des données. L'exemple montre une métrique delta enregistrée sous forme d'entier de 64 bits sans unité (valeur 1).

    • Genre : cet exemple est une métrique delta, qui enregistre une modification sur une période donnée. Autrement dit, chaque point de données enregistre le nombre d'appels d'API depuis l'écriture du point de données précédent. Pour plus d'informations sur les genres, consultez la section Types de valeurs et genres de métriques.

    • Type : cet exemple enregistre ses valeurs sous forme d'entiers de 64 bits. Pour en savoir plus sur les types, consultez la section Types de valeurs et genres de métriques.

    • Unit (Unité) : cette métrique n'a pas besoin d'une unité explicite, car elle représente un décompte. Le chiffre 1 est utilisé pour indiquer qu'aucune unité n'est nécessaire.

  • Ressources surveillées : ressources surveillées pour lesquelles ce type de métrique est disponible. Les valeurs indiquées ici sont les mêmes que celles décrites dans la section Types de ressources surveillées.

  • Description : informations plus détaillées ce qui est enregistré et selon quelle méthode. Indiquez-la en italique pour la distinguer des libellés.

  • Libellés : ensemble de dimensions permettant de classer les données. Pour plus d'informations, consultez la section Libellés.

Lorsque vous accédez aux données de surveillance via l'API Cloud Monitoring, vous incluez un projet Google Cloud dans l'appel d'API. Vous ne pouvez récupérer que les données visibles par le projet Google Cloud concerné. Par exemple, si vous demandez les données de votre projet pour le type de métrique storage.googleapis.com/api/request_count, vous ne voyez le nombre d'API que pour les buckets Cloud Storage de votre projet. Si votre projet n'utilise pas de buckets Cloud Storage, aucune donnée de métrique n'est renvoyée.

Types de métriques intégrées

Les types de métriques intégrées sont définis par les services Google Cloud, y compris Cloud Monitoring. Ces types de métriques décrivent des mesures standards pour large part de l'infrastructure commune et sont accessibles à tous.

La liste de métriques affiche l'ensemble des types de métriques intégrés. Les métriques listées sur la page [Liste des métriques externes][metrics-external] constituent un sous-ensemble spécial de métriques intégrées définies par Cloud Monitoring en partenariat avec des projets Open Source ou des fournisseurs tiers. En règle générale, ces métriques comportent le préfixe external.googleapis.com.

Métriques personnalisées

Lorsque vous créez votre application, il est possible que vous souhaitiez mesurer certaines propriétés, pour lesquelles aucune métrique n'est intégrée à Cloud Monitoring. Avec Cloud Monitoring, vous pouvez définir vos propres types de métriques ou importer des types de métriques à partir de sources externes. Ces types de métriques sont appelés métriques personnalisées. Si une métrique comporte le préfixe custom.googleapis.com ou prometheus.googleapis.com, il s'agit d'une métrique personnalisée. Ces dernières métriques proviennent généralement de Google Cloud Managed Service pour Prometheus.

Par exemple, si vous souhaitez suivre le nombre de widgets vendus par vos magasins, vous devez utiliser une métrique personnalisée. Pour en savoir plus, consultez Présentation des métriques définies par l'utilisateur.

Étiquettes

Une étiquette est une paire clé/valeur qui peut être utilisée pour fournir des informations sur une valeur de données.

Étiquettes de métriques et de ressources surveillées

Les définitions des types de métriques et de ressources surveillées incluent des libellés. Les libellés sont des outils de classification des données collectées. Ils permettent de classer les données pour une analyse plus approfondie. Exemple :

  • Le type de métrique Cloud Storage storage.googleapis.com/api/request_count comporte deux libellés : response_code et method.
  • Le type de ressource surveillée Cloud Storage gcs_bucket comporte trois libellés : project_id, bucket_name et location. Les libellés identifient des instances spécifiques du type de ressource.

Par conséquent, toutes les données collectées pour les requêtes API d'un bucket Cloud Storage sont classées par la méthode appelée, le code de réponse de l'appel, ainsi que le nom, l'emplacement et le projet du bucket concerné. L'ensemble de libellés varie en fonction du type de métrique ou de ressource surveillée. Les libellés disponibles sont présentés dans les pages Liste des métriques et Liste des ressources surveillées.

En suivant le code de réponse, le nom de la méthode et l'emplacement lors du comptage des appels d'API, vous pouvez extraire le nombre d'appels à une méthode d'API spécifique, le nombre d'échecs d'appels à une méthode ou le nombre d'échecs d'appels à une méthode spécifique dans un emplacement spécifique.

Le nombre de libellés et le nombre de valeurs que chacun peut accepter est appelé cardinalité. La cardinalité correspond au nombre de séries temporelles pouvant être collectées pour une paire de type de métrique et de type de ressource surveillée : il existe une série temporelle pour chaque combinaison de valeurs de leurs libellés. Pour en savoir plus, consultez la section Cardinalité: séries temporelles et étiquettes.

Libellés de métadonnées de ressources

En plus des libellés définis sur les types de métriques et de ressources surveillées, Monitoring collecte en interne des informations supplémentaires sur les ressources surveillées et stocke ces informations dans les libellés de métadonnées système. Ces libellés de métadonnées système sont disponibles pour les utilisateurs sous forme de valeurs en lecture seule. Certaines ressources permettent également aux utilisateurs de créer leurs propres libellés de métadonnées de ressources lors de la configuration de ressources telles que des instances de VM dans la console Google Cloud.

Les libellés de métadonnées système et utilisateur sont collectivement appelés libellés de métadonnées de ressource. Vous pouvez utiliser ces libellés, tels que les libellés définis sur la métrique et les types de ressources surveillées dans les filtres de séries temporelles. Pour en savoir plus sur le filtrage, consultez la page Filtres de surveillance.

Séries temporelles : données d'une ressource surveillée

Cette section décrit les données de surveillance et leur organisation en séries temporelles. C'est là que les composants conceptuels du modèle de métrique deviennent des artefacts concrets.

Cloud Monitoring stocke des mesures régulières au fil du temps pour les paires de type de métrique et de type de ressource surveillée. Les mesures sont collectées en séries temporelles, et chaque série temporelle contient les éléments suivants :

  • Le nom du type de métrique auquel appartient la série temporelle, et une combinaison de valeurs pour les libellés de la métrique.

  • Une série de paires (horodatage, valeur). La valeur correspond à la mesure, et l'horodatage correspond à l'heure à laquelle la mesure a été effectuée.

  • La ressource surveillée qui est la source des données de séries temporelles, et une combinaison de valeurs pour les libellés de la ressource.

Une série temporelle est créée pour chaque combinaison de libellés de métrique et de ressource qui génère des données.

Exemple stylisé: Le type de métrique storage.googleapis.com/api/request_count peut avoir de nombreuses séries temporelles pour les buckets Cloud Storage de votre projet. L'illustration suivante montre des séries temporelles possibles.

Dans l'illustration, la valeur bucket: xxxx représente la valeur du libellé bucket_name dans le type de ressource surveillée, et response_code et method sont des libellés dans le type de métrique. Il existe une série temporelle pour chacune des combinaisons de valeurs dans les libellés de ressource et de métrique. L'illustration en montre quelques-unes :

Image montrant plusieurs séries temporelles dans une métrique

Cloud Monitoring n'enregistre pas de séries temporelles "vides". Dans l'exemple des buckets Cloud Storage, si vous n'utilisez pas un bucket particulier ou n'appelez jamais une méthode API particulière, aucune donnée n'est collectée pour ce libellé, et aucune série temporelle ne le mentionne. Cela signifie que, si votre projet ne contient aucune donnée pour une métrique spécifique, le type de métrique ne s'affiche jamais.

Les types de métriques n'indiquent pas les types de ressources surveillées trouvés dans les séries temporelles des métriques. Pour Cloud Storage, il n'existe qu'un seul type de ressource surveillée : gcs_bucket. Certains types de métriques sont associés à plusieurs ressources surveillées.

Exemple en ligne: Si vous avez un projet Google Cloud, vous pouvez essayer le widget APIs Explorer, situé sur la page de référence de la méthode timeSeries.list dans l'API Monitoring.

  1. Ouvrez la page de référence timeSeries.list.

  2. Dans le volet intitulé Essayer cette méthode, saisissez la commande suivante:

    • name: projects/PROJECT_ID Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.
    • filter : metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
    • interval.start_time: saisissez l'heure de début et assurez-vous qu'elle soit 20 minutes avant l'heure de fin.
    • interval.end_time: saisissez l'heure de fin.

Si la requête aboutit, elle renvoie les données de séries temporelles qui correspondent à la requête. Cela ressemble à l'extrait suivant :

{
  "timeSeries": [
    {
      "metric": {
        "labels": {
          "severity": "INFO",
          "log": "compute.googleapis.com/activity_log"
        },
        "type": "logging.googleapis.com/log_entry_count"
      },
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "0",
          "zone": "us-central1",
          "project_id": "your-project-id"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
        "interval": {
            "startTime": "2024-03-29T13:53:00Z",
            "endTime": "2024-03-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

Pour en savoir plus sur l'utilisation du widget APIs Explorer, y compris sur le dépannage, consultez APIs Explorer.

Cardinalité : séries temporelles et libellés

Chaque série temporelle est associée à une paire spécifique de types de métriques et de ressources surveillées. Les types de métriques et de ressources surveillées fournissent chacun un certain nombre de libellés. Dans Cloud Monitoring, le nombre de combinaisons uniques de valeurs pour l'ensemble de libellés correspond à la cardinalité du type de métrique ou de ressource surveillée. Ces valeurs sont appelées cardinalité de la métrique et cardinalité des ressources. Elles déterminent le nombre de séries temporelles possibles (la cardinalité totale) qui peut être générée.

Métrique, ressource et cardinalité totale

Supposons que vous disposiez d'un type de métrique qui spécifie deux libellés, color et zone. La cardinalité de la métrique dépend du nombre de valeurs possibles de ces libellés:

  • S'il n'y a que trois couleurs possibles, "rouge", "vert" et "bleu", l'étiquette color peut avoir jusqu'à trois valeurs distinctes.
  • S'il n'y a que deux zones possibles, "est" et "ouest", l'étiquette zone peut avoir jusqu'à deux valeurs distinctes.

La cardinalité de cette métrique est de 6 (3 × 2). S'il existe 1 000 valeurs possibles pour le libellé color et si chaque couleur peut apparaître dans chaque zone, la cardinalité de la métrique est de 2 000 (1 000 × 2). Le même calcul s'applique s'il s'agit de libellés sur un type de ressource surveillée plutôt que sur un type de métrique.

Cette valeur de cardinalité est un maximum, basé sur le nombre de combinaisons de valeurs de libellés possibles. La valeur effective peut être nettement inférieure lorsque aucune combinaison de valeurs d'étiquette ne se produit réellement. Par exemple, si chaque couleur apparaît dans une seule zone, et non dans les deux, le nombre maximal de séries temporelles que vous voyez dans le système en cours d'exécution est de 1 000. Toutefois, l'utilité de la cardinalité efficace dépend des raisons pour lesquelles certaines combinaisons n'apparaissent pas et du fait qu'elles le soient à l'avenir.

La cardinalité dépend des valeurs que chaque étiquette peut avoir.

Lorsque des données de séries temporelles sont écrites, elles sont classées par type de métrique et de ressource surveillée. Pour toute paire de types de métriques et de ressources, la cardinalité totale est le produit de la cardinalité de la métrique et de la cardinalité de la ressource. Si vous avez une métrique avec une cardinalité de 1 000 et une ressource avec une cardinalité de 100, et que chaque valeur de libellé s'affiche, cela signifie que vous avez 100 000 séries temporelles (1 000 × 100).

Lorsque vous créez vos propres métriques, assurez-vous que l'ensemble de valeurs possibles pour chaque libellé est limité. L'approche privilégiée est un petit ensemble de valeurs discrètes (comme "rouge", "vert" et "bleu"). Par exemple, si vous utilisez des valeurs RVB 8 bits pour une étiquette color, vous pouvez avoir plus de 16 millions de valeurs différentes. N'utilisez pas de valeurs haute résolution telles que des horodatages, tout type d'identifiant unique, des ID utilisateur, des adresses IP, des URL sans paramètres, etc., pour les libellés de métriques.

Performances et cardinalité des requêtes

Lorsque vous émettez une requête de données, le volume de données demandé est le facteur le plus important pour les performances de la requête: une requête portant sur une heure de données est généralement plus rapide que la même requête couvrant six mois. Toutefois, le volume de données renvoyées par une requête est également sensible au nombre de séries temporelles d'une requête. Une requête récupérant deux mois de données pour une métrique à cardinalité faible est probablement plus rapide qu'une autre requête récupérant deux mois de données pour une métrique à cardinalité très élevée, en raison de la quantité de données récupérées.

La cardinalité dépend principalement du nombre de valeurs autorisées par vos étiquettes, et non du nombre de libellés. En général, vous ne contrôlez pas la cardinalité des ressources, par exemple lorsque le nombre de pods ou de VM change en fonction des besoins de l'entreprise. Toutefois, lorsque vous ingérez des métriques dans Cloud Monitoring plutôt que d'utiliser des métriques système, vous disposez souvent d'un certain contrôle sur la cardinalité de la métrique. Par exemple, avec les métriques personnalisées définies par l'utilisateur, vous déterminez les libellés et leurs valeurs possibles. Si vous ingérez des métriques Prometheus, vous pouvez utiliser le réétiquetage pour modifier l'ensemble des étiquettes et supprimer les séries temporelles que vous ne souhaitez pas ingérer.

Vous pouvez utiliser la page Gestion des métriques de Cloud Monitoring pour identifier les métriques pouvant présenter des problèmes de cardinalité. Pour afficher la page Gestion des métriques, procédez comme suit:

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis  Gestion des métriques :

    Accéder à Gestion des métriques

  2. Dans la barre d'outils, sélectionnez votre période. Par défaut, la page Gestion des métriques affiche des informations sur les métriques collectées au cours du jour précédent.

Pour en savoir plus sur la page Gestion des métriques, consultez la section Afficher et gérer l'utilisation des métriques.

Pour obtenir des informations techniques sur la façon dont Cloud Monitoring stocke et récupère les données de séries temporelles, consultez la page Monarch: la base de données de séries temporelles en mémoire de Google à l'échelle planétaire.

Pour en savoir plus sur les limites applicables aux métriques définies par l'utilisateur dans Cloud Monitoring, consultez la page Métriques définies par l'utilisateur.