Présentation de Cloud Monitoring

Ce document présente les services fournis par Cloud Monitoring. Ces services peuvent vous aider à comprendre le comportement, l'état et les performances de vos applications et d'autres services Google Cloud. Cloud Monitoring collecte et stocke automatiquement des informations sur les performances de la plupart des services Google Cloud. Vous pouvez collecter les métriques Prometheus à l'aide de Google Cloud Managed Service pour Prometheus. Si vous installez l'agent Ops sur vos machines virtuelles (VM) Compute Engine, vous pouvez collecter des métriques et des journaux à partir de vos applications et d'applications tierces.

Les services d'alerte, de test et de visualisation 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. Certains services sont également compatibles avec la Google Cloud CLI ou Terraform. 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 cette page.

Services Cloud Monitoring

Cloud Monitoring fournit différents services que vous pouvez utiliser pour comprendre l'état et les performances de vos applications, ainsi que les autres services Google Cloud que vous utilisez:

Alertes et notifications

Pour être averti lorsque la valeur d'une métrique de performances répond aux critères que vous avez définis, créez une règle d'alerte. La règle d'alerte inclut la liste des personnes ou des groupes qui recevront des notifications. 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. Par exemple, vous pouvez créer une règle d'alerte pour être averti lorsque l'utilisation du processeur d'une VM dépasse 80%.

Chaque notification inclut des informations pertinentes sur la défaillance et inclut un lien vers un incident. Un incident est un enregistrement persistant qui stocke des informations que vous pouvez utiliser pour résoudre la défaillance. En règle générale, un enregistrement répertorie l'état de l'incident, renvoie vers des journaux, un graphique des données de métriques enregistrées, les libellés et la durée.

Le service d'alerte est intégré à de nombreux services Google Cloud. Lorsque ces intégrations existent, vous pouvez voir un panneau qui répertorie les alertes recommandées, ou un bouton sur un graphique permettant de créer une règle d'alerte. Dans les deux cas, les règles d'alerte étant préconfigurées, vous ne spécifiez que la liste des personnes ou des groupes à notifier.

Vous pouvez créer et gérer des règles d'alerte à l'aide de la console Google Cloud, de l'API Cloud Monitoring, de Google Cloud CLI ou de Terraform.

Surveillance et validation proactives

Pour tester la disponibilité, la cohérence et les performances de vos services, applications, pages Web et API, créez des moniteurs synthétiques. Par exemple, vous pouvez vérifier la réactivité des points de terminaison HTTP, HTTPS et TCP à l'aide de tests de disponibilité, puis être averti lorsqu'un point de terminaison ne répond pas. Vous pouvez également créer un vérificateur de liens non fonctionnels pour explorer une page Web et vous avertir lorsque des liens non fonctionnels sont détectés.

Vous pouvez créer et gérer des surveillances synthétiques à l'aide de la console Google Cloud, de l'API Cloud Monitoring, de Google Cloud CLI ou de Terraform.

Visualisation des données

Pour visualiser vos données afin d'afficher les tendances, d'identifier les anomalies et d'afficher d'autres détails les concernant, vous pouvez utiliser les services de tableau de bord et de graphique:

Collecte et stockage des données

Cloud Monitoring collecte et stocke les types de données de métriques suivants:

Langages de requête

Lorsque vous créez une règle d'alerte ou un graphique, vous devez fournir une requête décrivant les données que vous souhaitez surveiller ou représenter dans un graphique:

  • Console Google Cloud: vous pouvez créer votre requête en effectuant des sélections dans les menus ou en écrivant une requête. Les éditeurs de requête sont disponibles pour le langage de requête Prometheus (PromQL) et le langage de requête de surveillance (MQL). Les éditeurs de requête fournissent des vérifications de la syntaxe et des suggestions. Vous pouvez également écrire une expression de filtre de surveillance.

  • API Cloud Monitoring: l'API est compatible avec les requêtes PromQL, les requêtes MQL et les expressions de filtre Monitoring.

Surveillance des systèmes de grande envergure

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 que individuellement, créez un groupe de ressources. Un groupe de ressources est un ensemble dynamique de ressources qui répondent à 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 Google 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 en savoir plus, consultez Configurer des groupes de ressources.

Surveiller les métriques de plusieurs projets Google 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 la console Google Cloud n'offrent accès qu'à la série temporelle stockée dans le projet effectuant une surveillance. Le projet effectuant une surveillance est le projet que vous avez sélectionné à l'aide de l'outil de sélection de projets de la console Google Cloud. Le projet effectuant une surveillance stocke les alertes, les écrans synthétiques, les tableaux de bord et les groupes de surveillance 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 de métriques, consultez la section Configurer un champ d'application de métriques pour plusieurs projets.

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 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 correspond à 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 la série temporelle sur une seule valeur du libellé instance_id.
  • Vous pouvez regrouper les instances de VM selon l'étiquette 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