Façonnez les opérations logicielles de demain et faites entendre votre voix en répondant à l'enquête 2021 sur l'état du DevOps.

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.

La présente page est destinée aux lecteurs qui souhaitent mieux comprendre les séries temporelles et la mise en œuvre 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 l'interaction principale est avec Google Cloud Console n'ont probablement pas besoin de ce niveau de détail.

  • Elle est également utile pour toute personne utilisant une intégration tierce comme OpenCensus. 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 page Utiliser des métriques personnalisées.

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 en fournit un bref aperçu.

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

Voici une instance complète d'une seule série temporelle (type TimeSeries) :

    {
      "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 figurant dans 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 figurant dans ce champ sont décrites plus en détail dans la section Ressources surveillées.

  • Les champs metricKind et valueType vous indiquent comment interpréter les valeurs. Pour en savoir plus, consultez la page Types de valeurs et genres 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

Chaque série temporelle enregistre la source des points de données en tant qu'objet de ressource surveillée (type MonitoredResource). Cet objet est intégré dans 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 sur un type de ressource surveillée sont contenues dans une structure de données appelée descripteur de ressource surveillée (type 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": "GCE VM Instance",
  "description": "A virtual machine instance hosted in Google Compute Engine (GCE).",
  "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 indiqué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. Par exemple, vous pouvez consulter les pages de référence des méthodes monitoredResourceDescriptors.list et monitoredResourceDescriptors.get.

Exemple réel : Si vous avez un projet Google Cloud, vous pouvez récupérer ce descripteur à l'aide du widget API 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 le bouton Exécuter en bas du panneau du widget. La requête renvoie le descripteur ci-dessus.

Essayer

Pour consulter plus d'exemples d'utilisation des méthodes de l'API Monitoring, consultez la page Parcourir les types de métriques et de ressources.

Au dernier décompte, Cloud Monitoring pouvait surveiller environ 100 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.

Un objet de métrique (type Metric) est une collection d'informations indiquant le type de métrique et les valeurs des libellés du type de métrique pour les points de données de cette série temporelle. Par exemple, voici l'objet de métrique extrait de la série temporelle indiquée dans la section 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 pour le type de métrique 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 (type 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 le descripteur de métrique pour le type de métrique logging.googleapis.com/log_entry_count :

{
  "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 réel : Si vous avez un projet Google Cloud, vous pouvez récupérer ce descripteur à l'aide du widget API 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 le bouton Exécuter en bas du panneau du widget. La requête renvoie le descripteur ci-dessus.

Essayer

Pour consulter plus d'exemples d'utilisation des méthodes de l'API Monitoring, consultez la page Parcourir les types de métriques et de ressources.

La plupart des champs du descripteur de métrique sont explicites. Deux champs peuvent demander plus d'explications. Il s'agit du genre de métrique et du type de valeur, qui sont décrits plus en détail sur la page Types de valeurs et genres de métriques.

Au dernier décompte, Cloud Monitoring disposait d'environ 1 500 types de métriques intégrées. Pour en savoir plus, consultez la liste des métriques. Vous pouvez également créer vos propres descripteurs de métriques pour capturer des métriques personnalisées. Pour en savoir plus, consultez la page Utiliser des métriques personnalisées.