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
-
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:
-
Éditeur Monitoring (
roles/monitoring.editor
) -
Développeur Cloud Functions (
roles/cloudfunctions.developer
)
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.
-
Éditeur Monitoring (
-
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.
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:
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.
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:
-
Dans la console Google Cloud, accédez à la page 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.
- Sélectionnez Inclure les attributions de rôles fournies par Google.
- 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.
-
- 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.
- 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. -
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.
- Sélectionnez Create Synthetic Monitor (Créer une surveillance synthétique).
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.
Attribuez un nom à la surveillance.
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.
Effectuez l'une des opérations suivantes :
Si vous avez accès à Gemini Code Assist dans ce projet et que vous avez besoin d'aide pour écrire votre code, cliquez sur M'aider à coder. Cette fonctionnalité est disponible en version Preview publique. Pour obtenir des conseils sur les requêtes, consultez Découvrez comment écrire des requêtes pour la surveillance synthétique.
Une fois que vous êtes satisfait du code, cliquez sur Insérer dans la fonction Cloud
Cliquez sur Créer une fonction.
Dans la boîte de dialogue "Fonction Cloud", procédez comme suit:
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.
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.
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.
Cliquez sur Apply function (Appliquer la fonction).
Configurez la règle d'alerte:
Facultatif: Mettez à jour le nom de la règle d'alerte et la durée de l'échec avant l'envoi des notifications.
Ajoutez les canaux de notification.
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.
- 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. - Écrire et déployer votre instance
Cloud Functions.
Par exemple, pour déployer l'exemple
synthetics-sdk-nodejs
dans dépôtGoogle Cloud/synthetics-sdk-nodejs
, effectuer les opérations suivantes: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
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
.
- Mocha:
Définissez le champ
--runtime
surnodejs18
.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
. 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.
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.
- 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. - Écrire et déployer votre instance
Cloud Functions.
Par exemple, pour déployer l'exemple
synthetics-sdk-nodejs
dans dépôtGoogle Cloud/synthetics-sdk-nodejs
, effectuer les opérations suivantes: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
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
.
- Mocha:
Définissez le champ
--runtime
surnodejs18
.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
. Pour créer une surveillance synthétique, procédez comme suit:
- Cliquez sur
projects.uptimeCheckConfigs.create
. pour ouvrir la page de référence de l'API associée à la méthode. - Cliquez sur Essayer pour ouvrir APIs Explorer.
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" } } } } }
- Champ parent:
- Cliquez sur
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:
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.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 }
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" }
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 nomsm-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 } }
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 } } }
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.
Pour créer un canal de notification, procédez comme suit:
-
Dans la console Google Cloud, accédez à la page notificationsAlertes :
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.
- Sélectionnez Gérer les canaux de notification.
- Accédez au type de chaîne que vous souhaitez ajouter, cliquez sur Ajouter, puis puis terminez la boîte de dialogue.
-
Pour créer une règle d'alerte, procédez comme suit :
-
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.
- Recherchez votre surveillance synthétique, sélectionnez more_vert Plus, puis sélectionnez Ajouter une règle d'alerte.
- Dans la boîte de dialogue, accédez à la section Notifications et nom. développez Canaux de notification, puis effectuez vos sélections.
- 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:
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:
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:
-
Dans la console Google Cloud, accédez à la page 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.
- Sélectionnez Inclure les attributions de rôles fournies par Google.
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" sur1
.
É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
- Exemples pour la surveillance synthétique
- Gérer la surveillance synthétique
- Explorer les résultats de la surveillance synthétique