Structure des séries temporelles

Cette page aborde plus en détail la discussion et les exemples présentés dans les pages Métriques, séries temporelles et ressources et Composants du modèle de métrique. Pour tirer le meilleur parti de cette page, commencez par lire ces pages.

Cette page est destinée aux lecteurs qui souhaitent en savoir plus sur les séries temporelles et l'implémentation du modèle de métrique Cloud Monitoring, en particulier ceux qui utilisent l'API Monitoring. Cela inclut les utilisateurs de métriques personnalisées (définies par l'utilisateur).

  • Cette page mappe le modèle de métrique général à l'API Cloud Monitoring. Elle est donc utile pour toute personne utilisant directement l'API Monitoring. Les utilisateurs dont la principale interaction avec la console Google Cloud n'ont probablement pas besoin de ce niveau de détail.

  • Il est également utile à toute personne utilisant une intégration tierce telle qu'OpenTelemetry. Lorsque les données d'une source externe atteignent Cloud Monitoring via une intégration, elles sont mappées au modèle de métrique Cloud Monitoring et traitées comme toute autre donnée de métrique.

Pour en savoir plus sur la collecte de vos propres métriques, consultez la section Présentation des métriques définies par l'utilisateur.

Examen du modèle de métrique

Pour comprendre la structure des séries temporelles, vous devez connaître le modèle de métrique utilisé par Cloud Monitoring. Ce modèle est décrit sur la page Métriques, séries temporelles et ressources. Cette section fournit un bref récapitulatif.

De manière générale, les données de surveillance sont enregistrées dans des séries temporelles. Chaque série temporelle inclut trois informations pertinentes pour cette discussion :

  • Un ensemble de points de données horodatés
  • Une référence au type de métrique qui vous indique comment interpréter les points de données
  • Une référence à la ressource surveillée d'où proviennent les données

    Structure d'une série temporelle.

Chaque série temporelle contient les mesures d'une seule source physique ou logique. Si votre environnement dispose de centaines de ressources, chacune contribue à au moins une série temporelle. En fait, si votre type de métrique et votre type de ressource surveillée comportent des libellés, vous obtenez une série temporelle par combinaison de valeurs de libellé. Pour en savoir plus, consultez la section Cardinalité.

Exemple de série temporelle

Une série temporelle est représentée par une instance d'un objet TimeSeries. Voici une instance complète d'une seule série temporelle:

    {
      "metric": {
        "labels": {
          "log": "kubelet",
          "severity": "DEFAULT"
        },
        "type": "logging.googleapis.com/log_entry_count"
      },
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "5106847938295940291",
          "zone": "us-central1-a",
          "project_id": "a-gcp-project"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
          "interval": {
            "startTime": "2019-12-20T20:25:38Z",
            "endTime": "2019-12-20T20:26:38Z"
          },
          "value": {
            "int64Value": "20"
          }
        }
      ]
    }

La plupart des séries temporelles incluent beaucoup plus de points de données. Celle-ci couvre un intervalle d'une minute. Toutes les séries temporelles ont la même structure, avec les champs suivants :

  • Le champ metric enregistre les informations suivantes :

    • Les valeurs de libellé de métrique pour cette série temporelle particulière, représentant une combinaison de valeurs de libellé.
    • Le type de métrique auquel les données sont associées. Le type de métrique spécifie les libellés disponibles et décrit ce que les points de données représentent.

    Les informations de ce champ sont décrites plus en détail dans la section Métriques.

  • Le champ resource enregistre les informations suivantes :

    • Les valeurs de libellé de ressource pour cette série temporelle particulière, représentant une combinaison de valeurs de libellé.
    • la ressource surveillée spécifique à partir de laquelle les données ont été collectées.

    Les informations de ce champ sont décrites plus en détail dans la section Objets de ressources surveillées.

  • Les champs metricKind et valueType vous indiquent comment interpréter les valeurs. Pour en savoir plus, consultez la section Genres et types de métriques.

  • Le champ points est un tableau de valeurs horodatées. Le type de métrique vous indique ce que les valeurs représentent. L'exemple de série temporelle comporte un tableau avec un seul point de données. Dans la plupart des séries temporelles, le tableau comporte beaucoup plus de valeurs.

Pour obtenir un exemple réel permettant de récupérer des données de séries temporelles, consultez la section Séries temporelles : données d'une ressource surveillée.

Le reste de la page examine plus en détail les informations des champs metric et resource.

Ressources surveillées

Cloud Monitoring collecte les données des ressources surveillées et les enregistre dans des séries temporelles. Chaque série temporelle créée inclut une description de la ressource surveillée à partir de laquelle les données ont été collectées.

Objets de ressources surveillées

Une ressource surveillée est représentée par une instance d'un objet MonitoredResource. La ressource surveillée décrit la source des valeurs d'une série temporelle. L'objet MonitoredResource est intégré à la série temporelle et identifie une instance spécifique d'un type de ressource surveillée connu de Monitoring: il pointe vers une entité physique ou logique.

Par exemple, voici un objet de ressource surveillée décrivant une instance Compute Engine particulière, extrait de l'exemple de série temporelle :

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "5106847938295940291",
          "zone": "us-central1-a",
          "project_id": "a-gcp-project"
        }
      }

Cette instance d'une ressource surveillée est de type gce_instance et elle possède une valeur instance_id spécifique (5106847938295940291) dans le projet a-gcp-project. L'instance est située aux États-Unis. Une autre série temporelle peut provenir d'une autre instance de cette ressource surveillée. Chaque combinaison de valeurs de libellé identifie une ressource unique à partir de laquelle les données sont collectées.

Il est pertinent d'avoir différents ensembles de libellés pour différentes ressources. L'ensemble de libellés d'une ressource est déterminé par le descripteur de ressource surveillée pour ce type.

Descripteurs de ressources surveillées

Les informations relatives à un type de ressource surveillée sont contenues dans une structure de données appelée descripteur de ressource surveillée. Pour connaître la définition de cette structure de données, consultez la section MonitoredResourceDescriptor.

Un descripteur de ressource surveillée est semblable à un schéma ou à une spécification pour une structure d'enregistrement. Il ne contient pas de données sur une instance particulière de la ressource surveillée. Il vous explique comment décrire une ressource surveillée d'un type spécifique. Par exemple, voici le descripteur de ressource surveillée pour la ressource gce_instance :

{
  "type": "gce_instance",
  "displayName": "VM Instance",
  "description": "A virtual machine instance hosted in Compute Engine.",
  "name": "projects/[PROJECT_ID]/monitoredResourceDescriptors/gce_instance"
  "labels": [
    {
      "key": "project_id",
      "description": "The identifier of the GCP project associated with this resource, such as \"my-project\"."
    },
    {
      "key": "instance_id",
      "description": "The numeric VM instance identifier assigned by Compute Engine."
    },
    {
      "key": "zone",
      "description": "The Compute Engine zone in which the VM is running."
    }
  ],
}

Comparez ce descripteur de ressource surveillée à l'instance spécifique d'une ressource gce_instance présentée dans la section Objets de ressources surveillées. Ce descripteur ne décrit pas une ressource surveillée particulière. À la place, le descripteur spécifie les libellés, et chaque combinaison de valeurs de libellé identifie une ressource surveillée particulière.

Vous pouvez récupérer les descripteurs de ressources surveillées dans votre projet Google Cloud à l'aide de l'API Cloud Monitoring. Consultez, par exemple, les pages de référence des méthodes monitoredResourceDescriptors.list et monitoredResourceDescriptors.get.

Exemple en ligne: Si vous avez un projet Google Cloud, vous pouvez récupérer ce descripteur à l'aide du widget APIs Explorer, situé sur la page de référence de la méthode monitoredResourceDescriptors.get dans l'API Monitoring.

Lorsque vous exécutez cet exemple, vous devez remplacer [PROJECT_ID] dans le champ name par votre ID de projet. Cliquez ensuite sur Execute (Exécuter) en bas du panneau du widget. La requête renvoie le descripteur précédent.

Essayer

Pour plus d'exemples d'utilisation des méthodes de l'API Monitoring, consultez Répertorier les types de métriques et de ressources.

Cloud Monitoring peut surveiller environ 270 types de ressources. Pour en savoir plus, consultez la liste des ressources. Cette liste est directement dérivée de l'ensemble des descripteurs de ressources surveillées disponibles.

Métriques

Chaque série temporelle créée par Cloud Monitoring enregistre un ensemble de points de données ainsi que des informations sur leur organisation et leur signification.

Objets de métriques

Chaque série temporelle inclut une référence à la description des données enregistrées dans un objet de métrique.

L'objet de métrique contenu dans une série temporelle spécifie le type de mesures et des informations spécifiques à la métrique concernant ces mesures. Pour obtenir une définition de la structure des données de l'objet de métrique, consultez la section Metric. Par exemple, voici l'objet de métrique extrait de la série temporelle dans Un exemple de série temporelle:

    {
      "metric": {
        "labels": {
          "log": "kubelet",
          "severity": "DEFAULT"
        },
        "type": "logging.googleapis.com/log_entry_count"
      }

Cet objet vous indique que la série temporelle contient des mesures logging.googleapis.com/log_entry_count. Les valeurs de libellé vous indiquent que cette série temporelle spécifique ne comptabilise que les entrées de journal de gravité DEFAULT dans le fichier journal nommé kubelet.

Il existe une série temporelle pour chaque combinaison de valeurs de libellé. Par conséquent, les entrées INFO d'un même fichier journal apparaissent dans une série temporelle différente.

L'ensemble de libellés collectés dans un objet de métrique est spécifié dans le descripteur de ce type de métrique.

Descripteurs de métriques

Les informations sur un type de métrique sont contenues dans une structure de données appelée descripteur de métrique. Pour connaître la définition de cette structure de données, consultez la section MetricDescriptor.

Un descripteur de métrique est un schéma ou une spécification pour une structure d'enregistrement. Il ne contient pas de données sur une métrique spécifique. Il vous explique comment interpréter les données associées à un type de métrique spécifique.

Voici un exemple de descripteur de la métrique:

{
  "type": "logging.googleapis.com/log_entry_count",
  "name": "projects/a-gcp-project/metricDescriptors/logging.googleapis.com/log_entry_count",
  "labels": [
    {
      "key": "log",
      "description": "Name of the log."
    },
    {
      "key": "severity",
      "description": "Severity of the log entry."
    }
  ],
  "metricKind": "DELTA",
  "valueType": "INT64",
  "unit": "1",
  "description": "Number of log entries that contributed to user-defined metrics.",
  "displayName": "Log entries",
  "metadata": {
    "launchStage": "GA",
    "samplePeriod": "60s"
  },
  "launchStage": "GA"
}

Comparez ce descripteur de métrique à l'objet de métrique indiqué dans la section Objets de métriques. Le descripteur vous indique la signification des valeurs de libellé et explique comment interpréter les valeurs des points de données.

Vous pouvez récupérer des descripteurs de métriques à l'aide de l'API Cloud Monitoring. Consultez, par exemple, les pages de référence des méthodes metricDescriptors.list et metricDescriptors.get.

Exemple en ligne: Si vous avez un projet Google Cloud, vous pouvez récupérer ce descripteur à l'aide du widget APIs Explorer, situé sur la page de référence de la méthode metricDescriptors.get dans l'API Monitoring.

Lorsque vous exécutez cet exemple, vous devez remplacer [PROJECT_ID] dans le champ name par votre ID de projet. Cliquez ensuite sur Execute (Exécuter) en bas du panneau du widget. La requête renvoie le descripteur précédent.

Essayer

Pour plus d'exemples d'utilisation des méthodes de l'API Monitoring, consultez Répertorier les types de métriques et de ressources.

La plupart des champs du descripteur de métrique sont explicites. Les deux types de métrique et de valeur, qui sont décrits plus en détail dans la section Genres et types de métriques, sont susceptibles de nécessiter des explications supplémentaires.

Cloud Monitoring comporte environ 6 500 types de métriques intégrés. Pour en savoir plus,consultez la liste des métriques. Vous pouvez également créer vos propres descripteurs de métrique pour capturer des métriques personnalisées. Pour en savoir plus, consultez la section Présentation des métriques définies par l'utilisateur.