Créer une surveillance synthétique

Ce document explique comment créer une surveillance synthétique pour tester la disponibilité, la cohérence et les performances de vos services, applications les pages Web et les API. Vous fournissez des tests pour votre application. La surveillance synthétique exécute ce script et enregistre les résultats des tests. des données supplémentaires telles que la latence. Pour recevoir une notification lorsque un test échoue, vous pouvez configurer une règle d'alerte pour surveiller les résultats du test.

À propos de la surveillance synthétique

La surveillance synthétique exécute régulièrement un objectif unique Fonction Cloud de 2e génération déployée sur Cloud Run : Lorsque vous créez la surveillance synthétique, vous définissez la fonction Cloud, qui doit être écrite en Node.js, et la fréquence d'exécution. Par exemple, vous pouvez configurer votre fonction Cloud pour qu'elle interagit associée à une page Web à l'aide de Puppeteer. Vous pouvez également configurer votre fonction Cloud pour qu'elle interagisse avec une API à l'aide du Axios. Vous voudrez peut-être aussi pour tester des ressources situées dans un réseau VPC.

Pour créer votre fonction Cloud, vous pouvez utiliser un éditeur intégré ou importer un fichier zip. Si vous choisissez utiliser l'éditeur intégré, vous pouvez commencer avec un squelette fourni. Une fois la surveillance synthétique créée, Cloud Monitoring utilise un système de planification qui planifie l'exécution périodique de votre fonction Cloud. Pendant que vous spécifier la région dans laquelle se trouve votre fonction Cloud, les commandes que l'exécution peut provenir de n'importe quelle région prise en charge par de tests de disponibilité. Pour en savoir plus, consultez Répertoriez les adresses IP des serveurs de tests de disponibilité.

Vous pouvez créer une règle d'alerte afin d'être averti en cas de échecs des tests:

  • Lorsque vous créez une surveillance synthétique à l'aide de la console Google Cloud, le comportement par défaut consiste à créer une règle d'alerte. Vous indiquez canaux de notification. La règle d'alerte par défaut est configurée vous avertir lorsque deux échecs de test consécutifs ou plus se produisent.

  • Lorsque vous créez une surveillance synthétique à l'aide de l'API Cloud Monitoring, vous devez créer la règle d'alerte pour surveiller Type de métrique uptime_check/check_passed pour le ressource Cloud Run dont la fonction Cloud est en cours d'exécution.

Considérations relatives à la fréquence d'exécution

Vous configurez la fréquence d'exécution de votre fonction Cloud. À la fréquence des exécutions, objectif de niveau de service (SLO) de votre service. Pour détecter les éventuels cas de non-respect des SLO, vous devez exécuter les tests fréquemment. Cependant, le SLO de votre service n'est pas le seul élément à prendre en compte. Vous devez également tenir compte de la manière dont le taux d'exécutions se traduit en charge sur à votre service et à vos coûts. Chaque exécution apporte une charge au service, Ainsi, plus vous exécutez votre fonction Cloud fréquemment, plus la charge appliquée à votre service est importante. À titre indicatif, l'intervalle d'exécution par défaut des tests de disponibilité est d'une minute.

La fréquence d'exécution détermine également la vitesse à laquelle vous pouvez être averti votre test échoue. Monitoring ouvre un incident et envoie une notification après le deuxième échec consécutif d'un test. Par exemple : si la fréquence d'exécution est de 5 minutes, deux tests ont échoué. Vous recevrez une notification après l'échec du deuxième test.

Exemple de code de la fonction Cloud

Pour obtenir des modèles et des exemples, consultez Exemples pour la surveillance synthétique. Vous pouvez utiliser ces exemples comme point de départ Cloud Functions. Si vous êtes un développeur expérimenté, vous pouvez envisager Utiliser Gemini pour générer du code pour la surveillance synthétique et ainsi réduire le temps de développement. L'utilisation de Gemini pour générer du code est en version Preview publique.

Le modèle générique, que vous pouvez sélectionner lorsque vous créez une surveillance synthétique à l'aide de la console Google Cloud, est configuré pour collecter les données de trace et de journal pour les requêtes HTTP sortantes. La solution exploite le Module auto-instrumentation-node OpenTelemetry et le winston logger. En raison de la dépendance aux produits Open Source, vous devez vous attendre à des changements la structure des données de trace et de journal. Par conséquent, les données de trace et les données des journaux ne doivent être utilisées qu'à des fins de débogage.

Vous pouvez implémenter votre propre approche pour collecter les données de trace et de journal des Requêtes HTTP. Pour obtenir un exemple d'approche personnalisée, consultez la classe SyntheticAutoInstrumentation.

Configuration de la fonction Cloud

Lorsque vous configurez une fonction Cloud, vous devez spécifier les paramètres d'exécution, de compilation, de connexion et de sécurité, ou acceptez les valeurs par défaut paramètres:

  • La valeur par défaut de la mémoire allouée peut ne pas être suffisante. Mer nous vous recommandons de définir ce champ sur une valeur d'au moins 2 Gio.

  • La valeur par défaut des paramètres de transfert de données entrantes de votre est d'autoriser tout le trafic. Vous pouvez utiliser ce paramètre ou un paramètre plus restrictif.

    Quand vous autorisez tout le trafic, la première phase de validation effectuées par Cloud Functions, au niveau du réseau, vos cartes. La seconde phase de validation détermine si l'appelant a reçu l'autorisation d'exécuter la fonction Cloud. L'autorisation dépend de l'état rôle IAM (Identity and Access Management). Par défaut, Cloud Monitoring est autorisé à exécuter vos Cloud Functions. Pour en savoir plus sur l'affichage ou la modification des paramètres de transfert de données entrantes, consultez la section Paramètres d'entrée.

Restrictions des fonctions Cloud

  • Le nom de votre fonction Cloud ne doit pas contenir de trait de soulignement.

  • Vous ne pouvez collecter des données de trace et de journal pour les requêtes HTTP sortantes que lorsque vous utilisez le modèle générique.

  • Seules les fonctions HTTP sont acceptées. Si vous utilisez les à la console Google Cloud pour créer votre surveillance synthétique, une fonction par défaut qui interroge une URL. La source de la fonction par défaut, modifiable, est disponible dans la Dépôt Git generic-synthetic-nodejs.

    Pour en savoir plus sur les fonctions HTTP, consultez la page Écrire des fonctions HTTP.

  • Si vous utilisez l'API, la commande de déploiement doit spécifier que le Cloud Functions est la 2e génération. Si vous utilisez les console Google Cloud, le déploiement est géré pour vous. Pour plus d'informations, consultez la page Déployer une fonction Cloud.

  • L'environnement d'exécution est limité à Node.js. Pour plus d'informations, consultez la section Nœud. Les versions suivantes de Node.js sont prises en charge: 12, 14, 16, 18 et 20.

Données collectées par la surveillance synthétique

Cette section décrit les données collectées pour la surveillance synthétique. Pour savoir comment afficher les résultats de l'exécution, consultez Explorer les résultats de la surveillance synthétique

Historique des exécutions

Pour chaque surveillance synthétique, un historique des résultats d'exécution est collecté. Ces données incluent les éléments suivants:

  • Série temporelle qui enregistre la réussite ou l'échec des exécutions au fil du temps.

  • Série temporelle qui enregistre la durée d'exécution du code. La la durée d'exécution de la fonction n'est pas enregistrée. Les données de latence sont écrites en tant que série temporelle uptime_check/request_latency pour la ressource Cloud Run dont la fonction Cloud en cours d'exécution. Un graphique de ces données est disponible sur la Page Détails de la surveillance synthétique.

  • Les journaux contenant des informations sur les exécutions de surveillance synthétique, telles que des informations les détails du test et de l'échec. Les journaux disponibles dépendent Cloud Functions. Par exemple, si vous utilisez le modèle Mocha, les journaux contiennent des informations indiquant si le test a réussi ou échoué, et les de la vidéo. La trace de la pile, lorsqu'elle est incluse, répertorie la ligne de code qui en échec, les types et les messages d'erreur.

  • Éventuellement, traces et journaux pour les requêtes HTTP sortantes. Pour plus d'informations pour savoir comment collecter ces données, consultez la section Latence des requêtes.

Métriques et journaux Cloud Functions

Métriques et journaux de votre fonction Cloud Ces données, qui sont collectées par Cloud Functions, inclut des informations sur le nombre d'exécutions par seconde, le temps d'exécution et l'utilisation de la mémoire votre fonction.

Latence de la requête

Les données de latence pour la requête HTTP effectuée par la surveillance synthétique sont automatiquement collectées et stockées par Cloud Trace.

Pour collecter les données de trace, de journal et de latence des requêtes HTTP sortantes effectuées par la surveillance synthétique, vous devez utiliser modèle générique. Pour en savoir plus, consultez la section Exemples pour la surveillance synthétique.

Avant de commencer

  1. Pour obtenir les autorisations nécessaires pour afficher et modifier la surveillance synthétique à l'aide de la console Google Cloud, demandez à votre administrateur de vous accorder le les rôles IAM suivants sur votre projet:

    Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

    Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

  2. Activer les API Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API.

    Activer les API

  3. Vérifier que votre projet Google Cloud contient l'instance Compute Engine par défaut de service géré. Ce compte de service est créé lorsque vous activez dans l'API Compute Engine. Son nom est semblable à 12345-compute@developer.gserviceaccount.com

    Dans la console Google Cloud, accédez à la page Comptes de service:

    Accéder à Comptes de service

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

    Si le compte de service Compute Engine par défaut n'existe pas, cliquez sur Créer un compte de service et remplir la boîte de dialogue.

  4. Assurez-vous que le compte de service Compute Engine par défaut, ou le que vous avez créé, a été Le rôle Éditeur (roles/editor) a été attribué.

    Pour afficher les rôles attribués à votre compte de service, procédez comme suit:

    1. Dans la console Google Cloud, accédez à la page IAM :

      Accéder à IAM

      Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

    2. Sélectionnez Inclure les attributions de rôles fournies par Google.
    3. Si le compte de service utilisé par votre surveillance synthétique n'est pas répertorié, ou si il ne s'est pas vu attribuer un rôle incluant les autorisations du rôle de l'agent Cloud Trace (roles/cloudtrace.agent), puis attribuez ce rôle votre compte de service.
  5. Configurez les canaux de notification que vous souhaitez utiliser pour recevoir des notifications. Nous vous recommandons de créer plusieurs types de notifications canaux de distribution. Pour en savoir plus, consultez Créer et gérer des canaux de notification Créer et gérer des canaux de notification par API

Créer une surveillance synthétique

Console

Lorsque vous créez une surveillance synthétique à l'aide de la console Google Cloud, une nouvelle Fonction Cloud (2e génération) et la surveillance de cette fonction Cloud est créée. Vous ne pouvez pas créer une surveillance synthétique qui surveille une fonction Cloud existante.

  1. Assurez-vous d'avoir activé la et les API requises, que votre projet contient un compte de service Compute Engine par défaut, et que ce compte dispose Le rôle Éditeur (roles/editor) a été attribué. Pour plus d'informations, consultez la section Avant de commencer.
  2. Dans la console Google Cloud, accédez à Page Surveillance synthétique:

    Accéder à Surveillance synthétique

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  3. Sélectionnez Create Synthetic Monitor (Créer une surveillance synthétique).
  4. Sélectionnez le modèle de votre fonction Cloud:

    • Surveillance synthétique personnalisée: utilisez ce modèle pour collecter des données les données de journal ou de trace pour les requêtes HTTP sortantes.

    • Surveillance synthétique mocha: utilisez ce modèle lorsque vous écrivez Suite de tests Mocha.

    • Vérificateur de liens non fonctionnel: utilisez ce modèle pour tester un URI. et un nombre configurable de liens trouvés à cet URI. Pour plus d'informations sur les champs de ce vérificateur, consultez Créez un vérificateur de liens non fonctionnels.

  5. Attribuez un nom à la surveillance.

  6. Facultatif: mettez à jour les paramètres Response Timeout (Délai avant expiration de la réponse), Check Frequency (Fréquence de vérification) et ajouter des étiquettes définies par l'utilisateur.

  7. Effectuez l'une des opérations suivantes :

  8. Dans la boîte de dialogue "Fonction Cloud", procédez comme suit:

    1. Saisissez un nom à afficher, puis sélectionnez une région. Les noms doivent être uniques au sein d'une dans la même région.

    2. Dans la section Paramètres d'exécution, de compilation, de connexion et de sécurité, procédez comme suit : effectuer les opérations suivantes:

      • Vérifiez les paramètres par défaut et mettez-les à jour si nécessaire.

      • Dans le champ Compte de service d'exécution, sélectionnez un compte de service.

    3. Modifiez le code généré, ou rédigez ou importez un code pour votre Cloud Functions:

      • Pour modifier le code généré, saisissez votre propre code ou chargez le l'exemple de fonction par défaut, sélectionnez Inline Editor (Éditeur intégré). L'exemple de fonction, qui dépend en fonction du modèle que vous avez sélectionné précédemment, envoie une demande une URL spécifique. Vous pouvez modifier la fonction par défaut.

      • Pour charger un fichier ZIP depuis votre système local, sélectionnez Fichier ZIP.

        Si vous importez un fichier ZIP depuis votre système local, vous devez spécifier également un bucket Cloud Storage pour le fichier ZIP. Si vous ne possédez pas de bucket Cloud Storage approprié, puis créez-en un.

      • Pour charger un fichier ZIP depuis Cloud Storage, sélectionnez Fichier ZIP depuis Cloud Storage, sélectionnez le bucket de stockage, puis sélectionnez le fichier ZIP à charger.

        Vous pouvez également créer une fonction Cloud à l'aide du Pages Cloud Functions dans la console Google Cloud. Pour créer un une surveillance synthétique qui surveille une copie de cette fonction Cloud, accédez à l'onglet Source Cliquez sur Download zip (Télécharger le fichier zip). Vous pouvez ensuite importer le fichier ZIP.

    4. Cliquez sur Apply function (Appliquer la fonction).

  9. Configurez la règle d'alerte:

    1. Facultatif: Mettez à jour le nom de la règle d'alerte et la durée de l'échec avant l'envoi des notifications.

    2. Ajoutez les canaux de notification.

  10. Cliquez sur Créer.

    La fonction Cloud que vous avez définie est créée et déployée ainsi que la surveillance synthétique.

gcloud

Lorsque vous créez une surveillance synthétique en utilisant la Google Cloud CLI ou l'API Cloud Monitoring, vous transmettez à l'appel d'API. Par conséquent, vous ne pouvez créer qu'une surveillance synthétique qui surveille une fonction Cloud existante.

  1. Assurez-vous d'avoir activé la et les API requises, que votre projet contient un compte de service Compute Engine par défaut, et que ce compte dispose Le rôle Éditeur (roles/editor) a été attribué. Pour plus d'informations, consultez la section Avant de commencer.
  2. Écrire et déployer votre instance Cloud Functions.

    Par exemple, pour déployer l'exemple synthetics-sdk-nodejs dans dépôt Google Cloud/synthetics-sdk-nodejs, effectuer les opérations suivantes:

    1. Clonez le dépôt et accédez à l'emplacement du code source:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Déployer la fonction Cloud à l'aide de la commande Commande gcloud functions deploy:

      gcloud functions deploy FUNCTION_NAME \
      --gen2 --region="us-west2" --source="." \
      --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
      

      Dans la commande gcloud functions deploy, procédez comme suit:

      • Assurez-vous que la valeur du champ FUNCTION_NAME est unique dans sa région de déploiement.

      • Incluez l'option --gen2 et définissez la région du déploiement.

      • Définissez le champ --entry-point comme suit:

        • Mocha: SyntheticMochaSuite
        • N'est pas moka: SyntheticFunction.
      • Définissez le champ --runtime sur nodejs18.

      • Incluez l'option --trigger-http.

      • Définissez le champ --ingress-settings si vous ne souhaitez pas utiliser la valeur par défaut qui autorise tout le trafic.

      Cloud Functions crée, puis déploie votre fonction Cloud. Les résultats de la commande Google Cloud CLI incluent des informations y compris son nom complet:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      Pour en savoir plus sur le déploiement d'une fonction, consultez Déployez une fonction Cloud.

    Pour répertorier les fonctions Cloud Functions de votre projet Google Cloud, utilisez la classe Commande gcloud functions list:

    gcloud functions list
    

    La réponse à cet appel est une entrée de liste, chaque entrée répertorie une Cloud Functions:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    Pour trouver le nom complet d'une fonction Cloud spécifique, exécutez la commande gcloud monitoring uptime describe.

  3. Pour créer la surveillance synthétique, exécutez la commande Commande gcloud monitoring uptime create:

    gcloud monitoring uptime create DISPLAY_NAME --synthetic-target=TARGET
    

    Avant d'exécuter la commande précédente, procédez comme suit:

    • Remplacez DISPLAY_NAME par le nom de votre surveillance synthétique.
    • Remplacez TARGET par le nom complet de votre Cloud Functions.
  4. Créez une règle d'alerte.

    En raison de la complexité de la règle d'alerte nous vous recommandons d'accéder à la section Moniteurs synthétiques de la console Google Cloud, puis utilisez les options pour créer règle d'alerte. Avec cette approche, la plupart des champs des règles d'alerte renseigné pour vous. Pour créer la règle d'alerte à l'aide de la méthode Dans la console Google Cloud, cliquez sur Créer une règle Page Moniteurs synthétiques.

    Si vous prévoyez d'utiliser la Google Cloud CLI ou l'API Cloud Monitoring, configurez le filtre de la condition comme suit:

    "filter": "resource.type = \"cloud_run_revision\" AND
                metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND
                metric.labels.check_id = \"CHECK_ID\"",
    

    La condition surveille Séries temporelles uptime_check/check_passed écrites par la surveillance synthétique. Veillez à remplacer CHECK_ID par le l'identifiant de la surveillance synthétique, qui est inclus dans les données de réponse d'une create.

    Pour savoir comment créer une règle d'alerte, consultez Créer des règles d'alerte à l'aide de l'API

API

Lorsque vous créez une surveillance synthétique en utilisant la Google Cloud CLI ou l'API Cloud Monitoring, vous transmettez à l'appel d'API. Par conséquent, vous ne pouvez créer qu'une surveillance synthétique qui surveille une fonction Cloud existante.

  1. Assurez-vous d'avoir activé la et les API requises, que votre projet contient un compte de service Compute Engine par défaut, et que ce compte dispose Le rôle Éditeur (roles/editor) a été attribué. Pour plus d'informations, consultez la section Avant de commencer.
  2. Écrire et déployer votre instance Cloud Functions.

    Par exemple, pour déployer l'exemple synthetics-sdk-nodejs dans dépôt Google Cloud/synthetics-sdk-nodejs, effectuer les opérations suivantes:

    1. Clonez le dépôt et accédez à l'emplacement du code source:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Déployer la fonction Cloud à l'aide de la commande Commande gcloud functions deploy:

      gcloud functions deploy FUNCTION_NAME \
      --gen2 --region="us-west2" --source="." \
      --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
      

      Dans la commande gcloud functions deploy, procédez comme suit:

      • Assurez-vous que la valeur du champ FUNCTION_NAME est unique dans sa région de déploiement.

      • Incluez l'option --gen2 et définissez la région du déploiement.

      • Définissez le champ --entry-point comme suit:

        • Mocha: SyntheticMochaSuite
        • N'est pas moka: SyntheticFunction.
      • Définissez le champ --runtime sur nodejs18.

      • Incluez l'option --trigger-http.

      • Définissez le champ --ingress-settings si vous ne souhaitez pas utiliser la valeur par défaut qui autorise tout le trafic.

      Cloud Functions crée, puis déploie votre fonction Cloud. Les résultats de la commande Google Cloud CLI incluent des informations y compris son nom complet:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      Pour en savoir plus sur le déploiement d'une fonction, consultez Déployez une fonction Cloud.

    Pour répertorier les fonctions Cloud Functions de votre projet Google Cloud, utilisez la classe Commande gcloud functions list:

    gcloud functions list
    

    La réponse à cet appel est une entrée de liste, chaque entrée répertorie une Cloud Functions:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    Pour trouver le nom complet d'une fonction Cloud spécifique, exécutez la commande gcloud monitoring uptime describe.

  3. Pour créer une surveillance synthétique, procédez comme suit:

    1. Cliquez sur projects.uptimeCheckConfigs.create. pour ouvrir la page de référence de l'API associée à la méthode.
    2. Cliquez sur Essayer pour ouvrir APIs Explorer.
    3. Définissez les champs suivants, puis exécutez la commande.

      • Champ parent: projects/PROJECT_ID.
      • Dans le corps de la requête, spécifiez les éléments suivants :

        • displayName: défini sur le nom à afficher pour votre surveillance synthétique.
        • syntheticMonitor: défini sur le nom complet de votre Cloud Functions.

      En cas de réussite, la réponse à l'appel d'API est semblable à celle-ci:

      {
      "name": "projects/myproject/uptimeCheckConfigs/17272586127463315332",
      "displayName": "MyMonitor",
      ...
      "syntheticMonitor": {
       "cloudFunctionV2": {
          "name": "projects/myproject/locations/us-west2/functions/function-1",
          "cloudRunRevision": {
          "type": "cloud_run_revision",
          "labels": {
             "project_id": "myproject",
             "configuration_name": "",
             "location": "us-west2",
             "revision_name": "",
             "service_name": "function-1"
          }
          }
       }
      }
      }
      
  4. Créez une règle d'alerte.

    En raison de la complexité de la règle d'alerte nous vous recommandons d'accéder à la section Moniteurs synthétiques de la console Google Cloud, puis utilisez les options pour créer règle d'alerte. Avec cette approche, la plupart des champs des règles d'alerte renseigné pour vous. Pour créer la règle d'alerte à l'aide de la méthode Dans la console Google Cloud, cliquez sur Créer une règle Page Moniteurs synthétiques.

    Si vous prévoyez d'utiliser la Google Cloud CLI ou l'API Cloud Monitoring, configurez le filtre de la condition comme suit:

    "filter": "resource.type = \"cloud_run_revision\" AND
                metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND
                metric.labels.check_id = \"CHECK_ID\"",
    

    La condition surveille Séries temporelles uptime_check/check_passed écrites par la surveillance synthétique. Veillez à remplacer CHECK_ID par le l'identifiant de la surveillance synthétique, qui est inclus dans les données de réponse d'une create.

    Pour savoir comment créer une règle d'alerte, consultez Créer des règles d'alerte à l'aide de l'API

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.

Pour créer une surveillance synthétique et une règle d'alerte pour surveiller cette vérification, effectuer les opérations suivantes:

  1. Assurez-vous d'avoir activé la et les API requises, que votre projet contient un compte de service Compute Engine par défaut, et que ce compte dispose Le rôle Éditeur (roles/editor) a été attribué. Pour plus d'informations, consultez la section Avant de commencer.

  2. Modifiez votre fichier de configuration Terraform et ajoutez un Ressource google_storage_bucket, puis appliquer vos modifications.

    Le code suivant définit un bucket Cloud Storage à l'emplacement US:

    resource "google_storage_bucket" "gcf_source" {
       name = "gcf-v2-source-9948673986912-us"
       location = "US"
       uniform_bucket_level_access = true
    }
    
  3. Modifiez votre fichier de configuration Terraform et ajoutez un google_storage_bucket_object ressource, puis appliquez vos modifications.

    "resource" spécifie le nom de l'objet dans votre bucket, et l'emplacement du fichier zip sur votre système local. Par exemple, lorsque vous appliquez le code suivant, un fichier portant le nom example-function.zip est ajouté à votre bucket de stockage:

    resource "google_storage_bucket_object" "object" {
       name = "example-function.zip"
       bucket = google_storage_bucket.gcf_source.name
       source = "generic-synthetic-node.js.zip"
    }
    
  4. Modifiez votre fichier de configuration Terraform et ajoutez un google_cloudfunctions2_function ressource, puis appliquez vos modifications.

    Assurez-vous que votre ressource google_cloudfunctions2_function spécifie un environnement d'exécution Node.js et le point d'entrée utilisé par la surveillance synthétique. Par exemple, lorsque vous appliquez le code suivant, une fonction dont le nom sm-central1 est déployé:

    resource "google_cloudfunctions2_function" "central1" {
       name = "sm-central1"
       location = "us-central1"
    
       build_config {
          runtime = "nodejs20"
          entry_point = "SyntheticFunction"
          source {
                storage_source {
                   bucket = google_storage_bucket.gcf_source.name
                   object = google_storage_bucket_object.object.name
                }
          }
       }
    
       service_config {
          max_instance_count = 1
          available_memory = "256Mi"
          timeout_seconds  = 60
       }
    }
    
  5. Pour créer une surveillance synthétique, modifiez votre fichier de configuration Terraform et ajoutez un élément google_monitoring_uptime_check_config ressource, puis appliquez vos modifications.

    Pour cette ressource, spécifiez le bloc synthetic_monitor:

    resource "google_monitoring_uptime_check_config" "synthetic" {
       display_name = "sm-central1"
       timeout = "30s"
    
       synthetic_monitor {
          cloud_function_v2 {
                name = google_cloudfunctions2_function.central1.id
          }
       }
    }
    
  6. Facultatif: Créez un canal de notification et une règle d'alerte.

    Les étapes suivantes permettent de créer la notification à l'aide de la console Google Cloud le canal de distribution et la règle d'alerte. Cette approche garantit que la règle d'alerte ne surveille que les données générées par votre surveillance synthétique.

    1. Pour créer un canal de notification, procédez comme suit:

      1. Dans la console Google Cloud, accédez à la page Alertes :

        Accéder à l'interface des alertes

        Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

      2. Sélectionnez Gérer les canaux de notification.
      3. Accédez au type de chaîne que vous souhaitez ajouter, cliquez sur Ajouter, puis puis terminez la boîte de dialogue.
    2. Pour créer une règle d'alerte, procédez comme suit :

      1. Dans la console Google Cloud, accédez à Page Surveillance synthétique:

        Accéder à Surveillance synthétique

        Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

      2. Recherchez votre surveillance synthétique, sélectionnez Plus, puis sélectionnez Ajouter une règle d'alerte.
      3. Dans la boîte de dialogue, accédez à la section Notifications et nom. développez Canaux de notification, puis effectuez vos sélections.
      4. Nommez la règle d'alerte, puis cliquez sur Créer une règle.

Tarifs

En général, les métriques système de Cloud Monitoring sont gratuites, et les métriques des systèmes, agents ou applications externes. Les métriques facturables sont facturés en fonction du nombre d'octets ou d'échantillons ingérés.

Pour en savoir plus sur les tarifs de Cloud Monitoring, consultez les documents suivants:

Résoudre les problèmes liés à la surveillance synthétique

Cette section fournit des informations qui vous aideront à résoudre les problèmes. la surveillance synthétique.

Message d'erreur après l'activation des API

Vous ouvrez le flux de création pour la surveillance synthétique et êtes invité à activer au moins une API. Une fois les API activées, un message semblable à celui-ci s'affiche:

An error occurred during fetching available regions: Cloud Functions API has
not been used in project PROJECT_ID before or it is disabled.

Le message d'erreur vous recommande de vérifier que l'API est activée, puis vous conseille d'attendre, puis de relancer l'action.

Pour vérifier que l'API est activée, accédez à la page API et des services de la page votre projet:

Accéder aux API et services

Après avoir vérifié que l'API est activée, vous pouvez passer à la créer un flux. La condition est résolue automatiquement une fois que l'API l'activation se propage dans le backend.

Les requêtes HTTP sortantes ne sont pas suivies.

Vous configurez la surveillance synthétique afin de collecter des données de trace pour la sortie. Requêtes HTTP. Vos données de trace n'affichent qu'un seul segment, semblable à celui-ci : capture d'écran:

Cloud Trace n'affiche qu'une seule trace.

Pour résoudre ce problème, assurez-vous que votre compte de service a reçu le rôle Agent Cloud Trace (roles/cloudtrace.agent). Le rôle Éditeur (roles/editor) est également suffisant.

Pour afficher les rôles attribués à votre compte de service, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page IAM :

    Accéder à IAM

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

  2. Sélectionnez Inclure les attributions de rôles fournies par Google.
  3. Si le compte de service utilisé par votre surveillance synthétique n'est pas répertorié, ou s'il ne s'est pas vu attribuer un rôle incluant les autorisations associées au rôle Agent Cloud Trace (roles/cloudtrace.agent), puis attribuez ce rôle à votre de service géré.

    Si vous ne connaissez pas le nom de votre compte de service, sélectionnez Comptes de service.

État "En cours"

La page Surveillance synthétique indique une surveillance synthétique dont l'état est In progress. L'état In progress signifie que la surveillance synthétique a été créée récemment et qu'il n'y a aucune donnée à afficher. ou que le déploiement de la fonction a échoué.

Pour déterminer si le déploiement de la fonction a échoué, essayez ce qui suit:

  • Assurez-vous que le nom de votre fonction Cloud contiennent un trait de soulignement. Si un trait de soulignement est présent, supprimez-le et redéployer la fonction Cloud.

  • Ouvrez la page Détails de la surveillance synthétique correspondant à la surveillance synthétique.

    Si le message suivant s'affiche, supprimez la surveillance synthétique.

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    Le message d'erreur indique que la fonction a été supprimée et que, par conséquent, la surveillance synthétique ne peut pas exécuter la fonction.

  • Ouvrez la page Cloud Functions pour la fonction. Ouvrir cette page sur la page Détails de la surveillance synthétique, cliquez sur Code, puis sur cliquez sur le nom de la fonction.

    Si un message semblable à celui-ci s'affiche, cela signifie que la fonction a échoué. à déployer.

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    Pour résoudre cet échec, examinez le code de la fonction et corrigez les erreurs. empêchant la création ou le déploiement de la fonction.

Lorsque vous créez une surveillance synthétique, la à déployer et à exécuter la fonction.

État de l'avertissement

La page Surveillance synthétique indique une surveillance synthétique. dont l'état est Warning. L'état Warning signifie que l'exécution les résultats sont incohérents. Cela peut indiquer un problème de conception test, ou cela peut indiquer que ce qui est testé a un comportement incohérent.

État "Échec"

La page Surveillance synthétique indique une surveillance synthétique dont l'état est Failing Pour en savoir plus sur le motif de l'échec, afficher l'historique des exécutions le plus récent.

  • Si le message d'erreur Request failed with status code 429 s'affiche, alors la cible de la requête HTTP a rejeté la commande. Pour résoudre ce problème, vous devez modifier la cible de la surveillance synthétique.

    Le point de terminaison https://www.google.com rejette les requêtes effectuées par la surveillance synthétique.

  • Si l'échec renvoie une durée d'exécution de 0ms, alors La fonction Cloud est peut-être à court de mémoire. Pour résoudre ce problème, modifiez votre fonction Cloud et augmentez la quantité de mémoire sur au moins 2 Gio et définissez le champ "CPU" sur 1.

Échec de la suppression pour une surveillance synthétique

Vous utilisez l'API Cloud Monitoring pour supprimer une surveillance synthétique, mais l'API échoue avec un résultat semblable à celui-ci:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again."
      }
    ]
  }
}

Pour résoudre le problème, supprimez les règles d'alerte surveiller les résultats de la surveillance synthétique, puis la supprimer.

Étape suivante