Présentation de Cloud Monitoring

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce document fournit une présentation de Cloud Monitoring, qui fait partie de la suite Google Cloud Operations. Cloud Monitoring est intégré à la plupart des services Google Cloud. Il collecte et stocke automatiquement les informations sur les performances de ces services. Il peut également collecter des métriques système et d'application à partir d'applications tierces. Les outils de visualisation et d'analyse des données fournis par Cloud Monitoring vous aident à répondre à des questions importantes telles que les suivantes:

  • Quelle est la charge sur mon service ?
  • Mon site Web répond-il correctement ?
  • Mon service est-il performant ?

Cloud Monitoring est compatible avec la console Google Cloud et les API pour la plupart de ses services, et les pages de référence de l'API Cloud Monitoring, telles que la page alertPolicies.list, vous permettent de tester les appels d'API directement à partir de la page de référence.

Ce document est destiné aux développeurs et aux administrateurs système qui doivent surveiller les performances d'un service ou d'un système.

Surveiller la charge sur un service

Pour comprendre la charge actuelle d'un service ou en afficher les données de performances pour le mois précédent, utilisez les outils tels que les graphiques et tableaux de bord. Vous pouvez représenter et surveiller graphiquement toutes les données de métriques (numériques) que votre projet Google Cloud collecte, y compris:

  • Métriques système générées par les services Google Cloud. Ces métriques fournissent des informations sur le fonctionnement du service. Par exemple, Compute Engine enregistre plus de 25 métriques uniques pour chaque instance de machine virtuelle (VM). Pour obtenir la liste complète des métriques, consultez la page Métriques Google Cloud.

  • Métriques du système et des applications collectées par l'agent Cloud Monitoring. Ces métriques fournissent des informations supplémentaires sur les ressources et les applications système exécutées sur les instances Compute Engine et sur les instances Amazon Elastic Compute Cloud (Amazon EC2). Vous pouvez éventuellement configurer l'agent pour collecter des métriques de plug-ins tiers tels que des serveurs Web Apache ou Nginx, ou des bases de données MongoDB ou PostgreSQL.

  • Des métriques définies par l'utilisateur que votre service écrit à l'aide de l'API Cloud Monitoring ou d'une bibliothèque telle qu'OpenCensus

  • Les métriques basées sur les journaux, qui collectent des informations numériques sur les journaux écrits dans Cloud Logging. Les métriques basées sur les journaux définies par Google incluent le nombre d'erreurs détectées par votre service et le nombre total d'entrées de journal reçues par votre projet Google Cloud. Vous pouvez également définir des métriques basées sur les journaux. Par exemple, vous pouvez créer une métrique qui compte le nombre d'erreurs 404 Not Found pour une application déployée sur App Engine.

Pour visualiser vos données afin d'identifier des tendances, d'identifier des anomalies et d'afficher d'autres détails sur vos données, vous pouvez utiliser les outils suivants:

  • Tableaux de bord Google Cloud : Cloud Monitoring crée automatiquement ces tableaux de bord en fonction des ressources utilisées par votre projet Google Cloud.

    Par exemple, lorsqu'un projet Google Cloud contient des instances de VM Compute Engine, des tableaux de bord sont créés automatiquement pour ces instances et disques de VM. Le tableau de bord Instances de VM vous permet d'afficher des détails tels que l'utilisation de la mémoire et du disque, d'identifier les adresses IP et les VM qui suppriment les paquets réseau. Ce tableau de bord affiche également des informations sur votre utilisation de l'agent Cloud Monitoring, ainsi que des suggestions d'instrumentation.

  • Tableaux de bord personnalisés : vous créez ou installez ces tableaux de bord. Les tableaux de bord personnalisés vous permettent de définir les données que vous souhaitez afficher et comment vous souhaitez afficher ces données. Par exemple, vous pouvez afficher les données de métriques, les règles d'alerte et les journaux stockés dans votre projet Google Cloud. Vous pouvez afficher les données de séries temporelles sur un graphique, avec une jauge ou un tableau de données, ou sous forme de tableau. Les tableaux de bord sont également compatibles avec les widgets de texte. Vous pouvez créer un tableau de bord personnalisé à l'aide de l'API Dashboards ou de la console Google Cloud.

  • Graphiques : vous pouvez ajouter des graphiques à un tableau de bord personnalisé ou utiliser l'explorateur de métriques, un outil de création de graphiques autonome conçu pour représenter et explorer rapidement des données de séries temporelles. Vous pouvez enregistrer des graphiques créés à l'aide de l'explorateur de métriques dans un tableau de bord personnalisé.

Lorsque vous créez un graphique, vous sélectionnez les données de séries temporelles que vous souhaitez afficher. Par exemple, vous pouvez configurer un graphique pour afficher les données des instances de VM Compute Engine situées dans la zone us-east-1d.

Les paramètres du graphique vous permettent de comparer les données actuelles aux données précédentes, d'afficher des anomalies et des centiles, et d'afficher plusieurs métriques. Par exemple, la capture d'écran suivante montre un graphique affichant le nombre d'octets lus et écrits par une seule VM:

Explorateur de métriques affichant les octets de lecture et d'écriture sur le disque.

Pour en savoir plus sur l'affichage des données de séries temporelles, consultez la page Utiliser des tableaux de bord et des graphiques.

Surveiller la disponibilité des sites Web

Pour savoir si un site Web répond, configurez un test de disponibilité. Ces vérifications évaluent régulièrement votre service de manière à imiter la manière dont vos clients accèdent à votre service, puis enregistrent la réussite et la latence de la vérification.

Pour afficher des informations sur vos tests de disponibilité, Cloud Monitoring fournit un tableau de bord qui résume l'état de chaque test de disponibilité. Pour chaque test, il fournit un tableau de bord contenant des informations détaillées. La vue détaillée d'un test de disponibilité affiche la réussite ou l'échec de la réponse, ainsi que la latence de la réponse, ainsi que des détails sur le test de disponibilité:

Exemple de vue détaillée d'un test de disponibilité.

Pour plus d'informations à ce sujet, consultez la page Gérer les tests de disponibilité.

Recevez une notification lorsqu'un service n'est pas performant

Pour être informé lorsque les performances d'un service ne répondent pas aux critères que vous avez définis, créez une règle d'alerte. Par exemple, vous pouvez créer une règle d'alerte qui informe votre équipe d'astreinte lorsque le 90e centile de la latence des réponses HTTP 200 provenant de votre service dépasse 100 ms. De même, vous pouvez être averti en cas d'échec d'un test de disponibilité.

Les règles d'alerte vous permettent de configurer si une seule série temporelle peut suffire à remplir une condition, ou si plusieurs séries temporelles doivent satisfaire la condition avant qu'elle ne soit remplie. Les règles d'alerte peuvent être simples ou complexes. Exemple :

  • M'avertir lorsqu'un test de disponibilité vers le domaine example.com échoue pendant au moins trois minutes.

  • Notifier l'équipe d'astreinte lorsque le 90e centile des réponses HTTP 200 dépasse une latence de 100 ms pour trois serveurs Web ou plus dans deux emplacements Google Cloud, à condition qu'il y ait moins de 15 RPS sur le serveur.

  • M'avertir lorsque la charge de processeur de toutes les instances de VM de mon projet Google Cloud dépasse un seuil de 0,6.

Cloud Monitoring fournit un tableau de bord qui récapitule l'état de vos règles d'alerte et, pour chaque règle, un tableau de bord contenant des informations détaillées. Comme le montre la capture d'écran suivante, le tableau de bord détaillé d'une alerte affiche les données surveillées, le seuil d'alerte, les canaux de notification, une liste d'incidents et toute documentation définie par l'utilisateur incluse dans une notification:

Règle d'alerte qui surveille la charge du processeur.

Les conditions sont le composant essentiel d'une règle d'alerte. Une condition décrit un problème potentiel concernant le système que Cloud Monitoring doit surveiller. Par exemple, vous pouvez décrire des conditions telles que les suivantes:

  • Tout test de disponibilité vers le domaine example.com échoue pendant au moins trois minutes.
  • L'espace libre de toute instance de VM surveillée est inférieur à 10 %.

Lorsque les conditions d'une règle d'alerte sont remplies, par exemple lorsque chaque test de disponibilité du domaine example.com échoue pendant trois minutes, Cloud Monitoring ouvre un incident et émet des notifications.

Un incident est un enregistrement persistant qui stocke des informations sur la ressource surveillée. Par exemple, une règle d'alerte qui surveille l'utilisation du processeur stocke les informations sur la VM dont l'utilisation entraîne le respect de la condition. Lorsque la condition cesse d'être remplie, l'incident est automatiquement fermé. Vous pouvez afficher tous les incidents, ouverts et fermés, à l'aide du tableau de bord des alertes.

Vous indiquez qui sera averti lorsque vous configurez une règle d'alerte. Monitoring est compatible avec les canaux de notification courants, y compris les e-mails, Cloud Mobile App et des services tels que PagerDuty ou Slack. Pour obtenir la liste complète des canaux de notification, consultez la section Options de notification.

Pour plus d'informations sur les règles d'alerte, consultez la page Présentation des alertes.

Surveiller les systèmes de grande taille

Cette section explique comment gérer les ressources en tant que collection et comment surveiller les métriques stockées dans plusieurs projets Google Cloud.

Gérer les ressources en tant que collection

Pour gérer vos ressources en tant que collection plutôt qu'individuellement, créez un groupe de ressources. Un groupe de ressources est un ensemble dynamique de ressources répondant à certains critères que vous fournissez. Lorsque vous ajoutez et supprimez des ressources, par exemple en ajoutant des instances de VM Compute Engine à votre projet Cloud, l'appartenance au groupe change automatiquement. Voici des exemples de groupes de ressources:

  • Instances Compute Engine dont le nom commence par la chaîne prod-.
  • Ressources comportant le tag test-cluster.
  • Instances Amazon EC2 dans la région A ou la région B.

Après avoir défini un groupe de ressources, vous pouvez le surveiller comme s'il s'agissait d'une seule ressource. Par exemple, vous pouvez configurer un test de disponibilité pour surveiller un groupe de ressources. Pour les graphiques et les règles d'alerte, vous pouvez également filtrer par nom de groupe.

Pour plus d'informations sur ce sujet, consultez la page Utiliser des groupes de ressources.

Surveiller les métriques de plusieurs projets Cloud

Pour afficher et surveiller les données de séries temporelles de plusieurs projets Google Cloud et comptes AWS via une seule interface, configurez un champ d'application des métriques multiprojet.

Par défaut, les pages Cloud Monitoring dans la console Google Cloud ne permettent d'accéder qu'aux séries temporelles stockées dans le projet de champ d'application. Le projet de champ d'application est le projet que vous avez sélectionné avec le sélecteur de projet de la console Google Cloud. Le projet de champ d'application stocke les alertes, les tests de disponibilité, les tableaux de bord et les groupes de surveillance qui que vous configurez.

Le projet de champ d'application héberge également un champ d'application des métriques. Le champ d'application des métriques définit les projets et les comptes dont les métriques sont visibles par le projet de champ d'application. Vous pouvez configurer le champ d'application des métriques pour inclure des données de séries temporelles provenant d'autres projets Google Cloud et de comptes AWS. Pour en savoir plus sur la modification d'un champ d'application des métriques, consultez la section Modifier la configuration Cloud Monitoring de votre projet.

Modèle de données Cloud Monitoring

Cette section présente le modèle de données Cloud Monitoring :

  • Une métrique décrit un élément mesuré. L'utilisation du processeur d'une VM et le pourcentage d'un disque utilisé sont des exemples de métriques.

  • Une série temporelle est une structure de données qui contient les mesures horodatées d'une métrique ainsi que des informations sur la source et la signification de ces mesures.

Par exemple, voici une série temporelle:

  "timeSeries": [
    {
      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
      },
      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
      "metricKind": "GAUGE",
      "valueType": "DOUBLE",

    },

Voici quelques détails sur le contenu d'une série temporelle:

  • Le tableau points contient les mesures horodatées.

    Dans l'exemple précédent, le tableau points contient deux valeurs:

      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
    

    Pour comprendre la signification d'une valeur, vous devez vous référer aux autres données incluses dans la série temporelle et aux définitions de ces données.

  • Le champ resource décrit le composant matériel ou logiciel surveillé. Dans Cloud Monitoring, le composant matériel ou logiciel est appelé ressource surveillée. Les instances Compute Engine et les applications App Engine sont des exemples de ressources surveillées. Pour obtenir la liste complète des ressources surveillées, consultez la liste des ressources surveillées.

    Dans l'exemple précédent, le champ resource est le suivant:

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
    
    • Le champ type présente la ressource surveillée en tant que gce_instance, ce qui indique que ces mesures sont effectuées sur une instance de VM Compute Engine.

    • Le sous-champ labels contient des paires clé/valeur qui fournissent des informations supplémentaires sur la ressource surveillée. Pour un type gce_instance, les libellés identifient l'instance de VM surveillée.

  • Le champ metric décrit l'élément qui est mesuré.

    Dans l'exemple précédent, le champ metric est le suivant:

      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
    
    • Pour les services Google, le champ type spécifie le service et les éléments surveillés. Dans cet exemple, l'agent Cloud Monitoring est le service et il mesure le pourcentage du disque utilisé. Lorsque le champ type commence par custom ou external, la métrique est soit une métrique personnalisée, soit une métrique définie par un tiers.

    • Le champ labels contient des paires clé/valeur qui fournissent des informations supplémentaires sur la mesure. Ces libellés sont définis dans le MetricDescriptor, qui est une structure de données qui définit les attributs des données mesurées. L'élément MetricDescriptor de la métrique agent.googleapis.com/disk/percent_used inclut les libellés device et state.

  • Le champ metricKind décrit la relation entre les mesures adjacentes au sein d'une série temporelle:

    • Les métriques GAUGE stockent la valeur de l'élément mesuré à un moment donné, par exemple un enregistrement de température horaire.

    • Les métriques CUMULATIVE stockent la valeur accumulée de l'élément mesuré à un moment donné, par exemple un kilométrage dans un véhicule.

    • Les métriques DELTA stockent le changement dans la valeur de l'élément mesuré sur une période spécifiée, par exemple un résumé des actions qui montre les gains ou les pertes de l'action.

  • Le champ valueType décrit le type de données pour la mesure: INT64, DOUBLE, BOOL, STRING ou DISTRIBUTION

Cloud Monitoring écrit une série temporelle pour chaque combinaison de valeurs de libellés de métriques et de ressources. Vous pouvez utiliser ces libellés pour regrouper et filtrer des séries temporelles. Par exemple, lorsqu'un projet Google Cloud contient plusieurs instances de VM Compute Engine, l'utilisation du processeur pour chaque instance de VM est une série temporelle unique. Voici différentes manières d'afficher ces données :

  • Vous pouvez afficher l'utilisation du processeur de chaque instance de VM.
  • Vous pouvez afficher l'utilisation du processeur pour une instance de VM spécifique en filtrant les séries temporelles sur une seule valeur du libellé instance_id.
  • Vous pouvez regrouper les instances de VM à l'aide du libellé machine_type, puis afficher l'utilisation moyenne du processeur. La capture d'écran suivante illustre un graphique avec cette configuration:

    Utilisation moyenne du processeur regroupée par type de machine.

Étapes suivantes