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

La page Modèle de métrique Cloud Monitoring fournit une description générale de ces concepts. 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. Au dernier décompte, Cloud Monitoring acceptait environ 100 types de ressources surveillées.

Les types de ressources surveillées incluent des tâches et des nœuds génériques, des tables dans Cloud Bigtable, des composants architecturaux dans Google Kubernetes Engine, 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 table 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

Voici 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 table 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. Au dernier décompte, Cloud Monitoring acceptait environ 1 500 types de métriques. Vous pouvez également 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 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 de 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.

Vous ne pouvez accéder qu'aux données de surveillance appartenant à votre espace de travail ou à votre projet Google Cloud actuel. Par exemple, si vous demandez des données du 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, vous n'obtenez aucune donnée de métrique.

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 portent 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. Ces types de métriques sont appelés métriques personnalisées. Si une métrique comporte le préfixe custom.googleapis.com ou external.googleapis.com/prometheus, il s'agit d'une métrique personnalisée. Les dernières métriques proviennent généralement du side-car Stackdriver Prometheus. Pour en savoir plus, consultez la page Utiliser 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 page Utiliser des métriques personnalisées.

Libellés

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. Ce point est abordé plus en détail dans 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 décrit ci-dessus 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 dans un espace de travail, vous pouvez essayer le widget API Explorer, situé sur la page de référence de la méthode timeSeries.list dans l'API Monitoring. Le bouton Essayer ci-dessous fournit les paramètres par défaut suivants à la méthode timeSeries.list :

  • name : projects/[PROJECT_ID]
  • filter : metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
  • interval.start_time : 2019-11-11T00:00:00Z
  • interval.end_time : 2019-11-11T00:20:00Z
  • fields : timeSeries.metric

Lorsque vous essayez d'exécuter cet exemple, vous devez remplacer [PROJECT_ID] dans le champ name par l'ID de votre projet.

Cet exemple suppose que vous disposez d'une instance Compute Engine exécutant l'agent Cloud Logging. Le type de ressource surveillée est gce_instance et le type de métrique est logging.googleapis.com/log_entry_count. Vous pouvez modifier ces valeurs si elles ne s'appliquent pas à vous.

Lorsque vous récupérez des données de séries temporelles, vous devez spécifier les heures de début et de fin. Cet exemple utilise une période du 11 novembre 2019. Cependant, les données de séries temporelles sont stockées pendant six semaines. Vous devrez donc probablement ajuster la date avant d'exécuter la requête.

Pour exécuter la requête, cliquez sur le bouton ci-dessous, ajustez les paramètres selon vos besoins, puis cliquez sur le bouton Exécuter en bas du panneau du widget.

Essayer

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": "2019-10-29T13:53:00Z",
            "endTime": "2019-10-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

Pour plus d'informations sur l'utilisation de ce widget, y compris le dépannage, consultez la page API 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, mais chaque paire peut avoir plusieurs séries temporelles. Le nombre possible de séries temporelles est déterminé par la cardinalité de la paire, c'est-à-dire le nombre de libellés et le nombre de valeurs que chaque libellé peut accepter.

Par exemple, supposons que vous ayez un type de métrique simple qui spécifie un libellé, color, et un type de ressource surveillée avec un autre libellé, zone. Vous obtenez une série temporelle pour chaque combinaison de valeurs zone et color.

Le nombre de valeurs qu'un libellé peut accepter est important :

  • S'il n'y a que deux zones possibles, "east" (est) et "west" (ouest), le libellé zone peut comporter jusqu'à deux valeurs distinctes.
  • 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.

La cardinalité dépend des libellés et de leurs valeurs.

La cardinalité de cette métrique est de 6 (3 × 2), bien que la métrique puisse produire moins de séries temporelles. Par exemple, si vous n'obtenez jamais de données de la zone "west" (ouest), vous n'aurez jamais plus de trois séries temporelles.

La cardinalité des métriques est un facteur critique des performances lorsque vous demandez des métriques pour un graphique ou d'autres utilisations. Une cardinalité plus élevée peut ralentir les temps de réponse des requêtes.

La cardinalité est également un problème lors de la conception de métriques personnalisées, où vous déterminez l'ensemble des libellés et leurs valeurs possibles. Vous pouvez définir jusqu'à 10 libellés dans un type de métrique, mais vous devez également vous assurer que l'ensemble des valeurs possibles pour ce libellé est limité. Un petit ensemble de valeurs discrètes (telles que "rouge", "vert" et "bleu") est l'approche à privilégier. Les valeurs précises, telles que les horodatages, ne doivent pas être utilisées. Il existe également d'autres limites concernant les métriques personnalisées. Pour en savoir plus, consultez la section Métriques personnalisées.