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 de manière générale. S'ils ne vous sont pas familiers, 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.

Vous devez comprendre les informations figurant sur 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 envisagez 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 inclure 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 est compatible avec environ 270 types de ressources surveillées.

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

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 montre l'entrée de la liste pour 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ées comporte une entrée dans les pages de 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 des métriques affiche l'ensemble des types de métriques intégrées. Les métriques répertoriées sur la page Liste des métriques externes 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 se peut qu'il n'existe aucune métrique intégrée pour certaines des propriétés que vous devez mesurer. Avec Cloud Monitoring, vous pouvez définir vos propres types de métriques ou en importer à 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. Les 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 la section Présentation des métriques définies par l'utilisateur.

Étiquettes

Un libellé est une paire clé-valeur qui peut être utilisée pour fournir des informations sur une valeur de données.

Libellés 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 libellés.

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 Google Cloud Console.

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étriques et de ressources 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 les 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 l'indique. 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 réel: 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 sur timeSeries.list.

  2. Dans le volet Essayer cette méthode, saisissez ce qui suit:

    • 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 est 20 minutes antérieure à 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 la page APIs Explorer.

Cardinalité : séries temporelles et libellés

Chaque série temporelle est associée à une paire spécifique de type de métrique et de type de ressource surveillée. 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 de valeurs uniques pour l'ensemble de libellés correspond à la cardinalité du type de métrique ou du type de ressource surveillée. Ces valeurs sont appelées cardinalité de la métrique et cardinalité de la ressource. Elles déterminent le nombre de séries temporelles possibles, la cardinalité totale.

Cardinalité de la métrique, de la ressource et 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, "red" (rouge), "green" (vert) et "blue" (bleu), le libellé color peut comporter jusqu'à trois valeurs distinctes.
  • S'il n'y a que deux zones possibles, "east" (est) et "west" (ouest), le libellé zone peut comporter 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 d'étiquettes possibles. La valeur réelle effective peut être nettement inférieure lorsque toutes les combinaisons de valeurs de libellé ne se produisent pas. Par exemple, si chaque couleur n'apparaît que 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é effective dépend des raisons pour lesquelles certaines combinaisons n'apparaissent pas et si elles pourraient le faire à l'avenir.

La cardinalité dépend des valeurs que les libellés peuvent avoir.

Lorsque les 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étrique et de ressource, la cardinalité totale correspond au produit de la cardinalité de la métrique et de la cardinalité de la ressource. Si vous disposez d'une métrique avec une cardinalité de 1 000 et d'une ressource avec une cardinalité de 100, et si chaque valeur de libellé s'affiche, vous disposez de 100 000 séries temporelles (1 000 x 100).

Lorsque vous concevez vos propres métriques, assurez-vous que l'ensemble des valeurs possibles pour chaque libellé est limité. Un petit ensemble de valeurs discrètes (telles que "rouge", "vert" et "bleu") est l'approche à privilégier. 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 codes temporels, tout type d'identifiant unique, des ID utilisateur, des adresses IP, des URL non paramétrées, etc. pour les libellés de métrique.

Performances des requêtes et cardinalité

Lorsque vous émettez une requête de données, le volume de données que vous demandez est le facteur le plus important dans les performances de la requête: une requête d'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 dans une requête. Une requête qui récupère deux mois de données pour une métrique à faible cardinalité est susceptible d'être plus rapide qu'une autre requête qui récupère 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 que vos libellés peuvent avoir, et non du nombre de libellés. En général, vous ne pouvez pas contrôler la cardinalité des ressources, comme lorsque le nombre de pods ou de VM change en fonction des besoins de l'entreprise. Toutefois, lorsque vous insérez des métriques dans Cloud Monitoring, plutôt que d'utiliser des métriques système, vous avez souvent un certain contrôle sur la cardinalité des métriques. Par exemple, avec les métriques personnalisées définies par l'utilisateur, vous déterminez les libellés et les valeurs possibles. Si vous insérez des métriques Prometheus, vous pouvez utiliser la réécriture de libellé pour modifier l'ensemble de libellés et supprimer les séries temporelles que vous ne souhaitez pas insérer.

Vous pouvez utiliser la page Gestion des métriques de Cloud Monitoring pour identifier les métriques qui présentent peut-être des problèmes de cardinalité. Pour afficher la page Gestion des métriques, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page  Gestion des métriques :

    Accédez à la page Gestion des métriques

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

  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 en savoir plus sur la manière dont Cloud Monitoring stocke et récupère les données de séries temporelles, consultez Monarch: la base de données de séries temporelles en mémoire à l'échelle de la planète de Google.

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