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é

Si vous souhaitez être averti 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'appel en cas d'appel au 90e centile de la latence des réponses HTTP 200 de votre service dépassant 100 ms.

Si vous souhaitez être averti si un service déployé n'est pas accessible ou s'il ne répond pas correctement, configurez untest de disponibilité et associez-lerè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 informe en cas d'échec d'une vérification.

Graphiques et tableaux de bord

Pour comprendre la charge actuelle d'un service ou afficher les données de performances du service au cours du mois précédent, utilisez les outils 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 sous forme de graphique les données de métrique (numériques) collectées par votre projet Google Cloud, y compris les suivantes:

  • 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.

Comprendre les métriques et les 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 indique 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 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é. Si 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. Le paramètre 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 la modification de la valeur de l'élément mesuré au cours d'une période donnée (par exemple, un résumé des actions indiquant 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, si vous avez un projet Google Cloud avec 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 données de séries temporelles à l'aide de graphiques et de tableaux de bord

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

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

    Par exemple, si votre projet Google Cloud contient des instances de VM Compute Engine, des tableaux de bord sont automatiquement créés 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 pouvez créer ou installer 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. Sur vos tableaux de bord, vous pouvez ajouter des widgets qui affichent des graphiques, du texte, des jauges ou des tableaux de données. 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 conçu pour vous permettre de créer rapidement des graphiques et des données de séries temporelles. Si vous créez un graphique avec l'explorateur de métriques, vous pouvez l'enregistrer 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

Si vous créez une règle d'alerte, vous pouvez être averti lorsqu'une seule série temporelle remplit une certaine condition ou lorsque plusieurs séries temporelles répondent à cette condition. Les règles d'alerte peuvent être simples ou complexes, par exemple:

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

  • Informez l'équipe d'astreinte si le 90e centile des réponses HTTP 200 provenant de trois serveurs Web ou plus dans deux emplacements Google Cloud distincts dépasse une latence de réponse de 100 ms, à condition que cette latence soit suffisante. de moins de 15 RPS sur le serveur.

  • Envoyez-moi une notification si la charge du processeur de toutes les instances de VM de mon projet Google Cloud est supérieure à 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 et 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%.

Si les conditions d'une règle d'alerte sont remplies, par exemple, si chaque test de disponibilité du 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 la messagerie, l'application Cloud Mobile et les 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 de manière à imiter la façon 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. Si vous souhaitez être averti lorsque votre test de disponibilité échoue, vous pouvez créer une règle d'alerte pour 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é.

Surveiller des systèmes volumineux

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

Utiliser des groupes de ressources

Si vous souhaitez gérer vos ressources Google Cloud ou Amazon en tant que collection au lieu de procéder individuellement, vous pouvez créer 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 Google Cloud

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

Par défaut, les pages Cloud Monitoring dans Google Cloud Console ne donnent accès qu'aux séries temporelles stockées dans le projet de préproduction. Le projet d'extraction est le projet que vous avez sélectionné à l'aide du sélecteur de projet 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.

Utiliser des interfaces de programmation et graphiques

Pour afficher les données de vos 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.

Étape suivante