Présentation de Cloud Monitoring

Cette page présente les outils et le modèle de données de Cloud Monitoring. Cloud Monitoring vous permet de répondre à des questions importantes, telles que:

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

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

Présentation de Cloud Monitoring

Cloud Monitoring collecte des mesures de votre service et des ressources Google Cloud que vous utilisez. Cette section présente les outils Cloud Monitoring que vous pouvez utiliser pour visualiser et surveiller ces mesures.

Règles d'alerte et tests de disponibilité

Pour recevoir une notification 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 de votre service dépasse 100 ms.

Pour être alerté lorsqu'un service déployé n'est pas accessible ou lorsqu'il ne répond pas correctement, configurez un test de disponibilité et associez une règle d'alerte :

  • Le test de disponibilité vérifie régulièrement votre service et stocke la réussite et la latence de cette vérification sous forme de données de métriques.
  • La règle d'alerte surveille l'état de réussite du test de disponibilité et vous avertit en cas d'échec d'une vérification.

Graphiques et tableaux de bord

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. Cloud Monitoring remplit automatiquement les tableaux de bord en fonction des services et des ressources utilisés par votre service. Toutefois, vous pouvez également créer des tableaux de bord personnalisés pour représenter graphiquement des données, des indicateurs d'affichage ou du texte.

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 personnalisées que votre service écrit à l'aide de l'API Cloud Monitoring ou d'une bibliothèque telle que 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.

Métriques et séries temporelles

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 disque 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 disque de chaque instance de VM.
  • Vous pouvez regrouper les instances de VM selon le libellé state, puis afficher l'utilisation moyenne du disque. La capture d'écran suivante illustre un graphique avec cette configuration:

    Utilisation moyenne du disque regroupée par état.

  • Vous pouvez afficher l'utilisation du disque pour une instance de VM spécifique en filtrant les séries temporelles pour une seule valeur du libellé instance_id. La capture d'écran suivante illustre un graphique avec cette configuration:

    Pourcentage d'utilisation du disque pour un disque spécifique.

Afficher les séries temporelles

Cloud Monitoring vous offre plusieurs moyens de visualiser les données de séries temporelles:

  • 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é avec l'API Dashboards ou avec Cloud Console.

  • 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 les graphiques créés avec l'explorateur de métriques dans un tableau de bord personnalisé.

Lorsque vous créez un graphique, vous sélectionnez la ressource surveillée et le type de métrique dont vous souhaitez afficher les données de séries temporelles. Une fois ces sélections effectuées, vous pouvez appliquer des filtres pour sélectionner des séries temporelles correspondant à certaines valeurs de libellé et regrouper les données par libellé. Par exemple, vous pouvez ajouter un filtre de sorte qu'un graphique n'affiche que les séries temporelles des instances de VM Compute Engine situées dans la Zone us-east1.

Les paramètres de graphique vous permettent de comparer des données actuelles à des données précédentes et de créer des graphiques qui affichent des données de séries temporelles pour 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.

Configurer des alertes

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, par 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. La capture d'écran suivante illustre cette règle d'alerte :

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

Vous pouvez créer des règles d'alerte à l'aide de l'API Cloud Monitoring, ou à l'aide de Google Cloud Console. Dans les deux cas, vous pouvez gérer et afficher vos règles dans Google Cloud Console à l'aide de la page Alertes.

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é vers le domaine example.com échoue pendant trois minutes, Cloud Monitoring ouvre un incident et envoie des notifications :

  • Un incident est un enregistrement persistant qui stocke des informations sur les ressources surveillées lorsque la condition est remplie. 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.

Vérifier que votre service est accessible

Vous pouvez configurer Cloud Monitoring de sorte qu'il vérifie régulièrement votre service en imitant la manière dont vos clients accèdent à votre service. Lorsque vous configurez un test de disponibilité, les serveurs d'au moins trois emplacements différents testent régulièrement votre service, puis enregistrent la réussite et la latence de la vérification. Pour être averti en cas d'échec d'un test de disponibilité, créez une règle d'alerte afin de surveiller la métrique uptime_check/check_passed, qui enregistre les résultats des tests de disponibilité.

Cloud Monitoring fournit une page Tests de disponibilité qui affiche un résumé de vos tests de disponibilité. Vous pouvez filtrer l'affichage et utiliser les liens intégrés pour afficher les détails d'un test de disponibilité spécifique. 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é.

Compatibilité avec les systèmes de grande taille

Cette section décrit les fonctionnalités conçues pour vous aider à surveiller les systèmes volumineux.

Groupes de ressources

Pour gérer vos ressources Google Cloud ou Amazon en tant que collection plutôt que individuellement, créez un groupe de ressources. Un groupe de ressources est une collection dynamique de ressources qui répond à 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.

Afficher les métriques pour 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 de Google Cloud Console ne fournissent un accès qu'aux séries temporelles stockées dans le projet effectuant une surveillance. Le projet effectuant une surveillance est le projet que vous avez sélectionné avec l'outil de sélection de projets Cloud Console. 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.

Interfaces de programmation et graphiques

Pour afficher vos données de métriques, et créer et gérer des règles d'alerte, des tableaux de bord et des tests de disponibilité, vous pouvez utiliser Google Cloud Console.

L'API Cloud Monitoring vous permet également d'écrire des données de métriques personnalisées, et de créer et gérer des règles d'alerte, des tableaux de bord et des tests de disponibilité. Les pages de référence de l'API Cloud Monitoring, telles que alertPolicies.list, vous permettent de tester les appels d'API directement à partir de la page de référence.

Étapes suivantes