Crea un monitoraggio sintetico

Questo documento descrive come creare monitor sintetici per testare il disponibilità, coerenza e prestazioni di servizi, applicazioni pagine web e API. Fornisci i test per la tua applicazione. Il monitoraggio sintetico esegue lo script e registra i risultati dei test. come la latenza. Per ricevere una notifica quando se un test non va a buon fine, puoi configurare un criterio di avviso per monitorare i risultati del test.

Informazioni sui monitoraggi sintetici

Un monitoraggio sintetico esegue periodicamente un unico scopo funzione Cloud Functions Functions di 2a generazione di cui viene eseguito il deployment Cloud Run. Quando crei il monitoraggio sintetico, definisci la Cloud Function, che deve essere scritta in Node.js, e la frequenza di esecuzione. Ad esempio, puoi configurare la Cloud Function per interagire con una pagina web utilizzando Puppeteer. Puoi anche configurare la Cloud Function per interagire con un'API mediante Modulo Axios. Potresti anche voler per testare le risorse che si trovano all'interno di una rete VPC.

Per creare la Cloud Function, puoi utilizzare un editor in linea o caricare un file ZIP. Se scegli di usa l'editor in linea, puoi iniziare con uno scheletro fornito. Dopo aver creato un monitoraggio sintetico, Cloud Monitoring utilizza un sistema di pianificazione che pianifica l'esecuzione periodica della Cloud Function. Mentre specifica la regione in cui esiste la Cloud Function, i comandi attivare l'esecuzione può avere origine in qualsiasi regione supportata i server di controllo di uptime. Per ulteriori informazioni, vedi Elenca gli indirizzi IP dei server per il controllo di uptime.

Puoi creare un criterio di avviso per ricevere una notifica quando vengono errori del test:

  • Quando crei un monitoraggio sintetico utilizzando la console Google Cloud, il comportamento predefinito è creare un criterio di avviso. Devi fornire i parametri canali di notifica. Il criterio di avviso predefinito è configurato su ti invia una notifica quando si verificano due o più errori di test consecutivi.

  • Quando crei un monitoraggio sintetico utilizzando l'API Cloud Monitoring, devi creare il criterio di avviso per monitorare uptime_check/check_passed per il tipo di metrica Risorsa Cloud Run corrispondente alla Cloud Function in esecuzione.

Considerazioni sulla frequenza di esecuzione

Puoi configurare la frequenza di esecuzione della Cloud Function. A determinare la frequenza delle esecuzioni, considera obiettivo del livello del servizio (SLO) per il tuo servizio. Per individuare potenziali violazioni dello SLO, devi eseguire spesso i test. Tuttavia, lo SLO per il tuo servizio non è l'unica considerazione. Devi anche considerare come la frequenza delle esecuzioni si traduce in un carico al tuo servizio e ai tuoi costi. Ogni esecuzione fornisce un carico sul tuo servizio, in modo che più spesso esegui la Cloud Function, maggiore è il carico che applichi al tuo servizio. Come riferimento, l'intervallo di esecuzione predefinito per i controlli di uptime è di un minuto.

La frequenza di esecuzione determina anche la velocità con cui puoi ricevere una notifica quando il test non va a buon fine. Il monitoraggio apre un incidente e invia una notifica dopo il secondo errore consecutivo di un test. Ad esempio: se la frequenza di esecuzione è 5 minuti, possono essere necessari 10 minuti prima ci sono due test non riusciti. Riceverai una notifica dopo il secondo test non riuscito.

Codice campione della Cloud Function

Per i modelli e gli esempi, consulta Esempi di monitoraggi sintetici. Puoi utilizzare questi esempi come punto di partenza per la funzione Cloud Function. Se sei un sviluppatore esperto, utilizzando Gemini per generare codice per i monitoraggi sintetici riducendo i tempi di sviluppo. L'utilizzo di Gemini per generare il codice è in Anteprima pubblica.

Il modello generico, che puoi selezionare quando di creare un monitoraggio sintetico utilizzando la console Google Cloud è configurato in modo da raccogliere i dati di traccia e log per le richieste HTTP in uscita. La soluzione sfrutta Modulo auto-instrumentation-node OpenTelemetry e il winston logger. A causa della dipendenza dai prodotti open source, dovrebbero verificarsi cambiamenti nelle la struttura dei dati di traccia e di log. Di conseguenza, i dati di tracciamento e i dati di log devono essere utilizzati solo a scopo di debug.

Puoi implementare il tuo approccio per raccogliere i dati di traccia e log per i messaggi in uscita richieste HTTP. Per un esempio di approccio personalizzato, visualizza il corso SyntheticAutoInstrumentation.

Configurazione della Cloud Function

Quando configuri la Cloud Function, devi specificare le impostazioni di runtime, build, connessioni e sicurezza oppure accetta le impostazioni impostazioni:

  • Il valore predefinito per la memoria allocata potrebbe non essere sufficiente. Me ti consigliamo di impostare questo campo su un valore pari ad almeno 2 GiB.

  • Il valore predefinito per le impostazioni di Data Transfer in entrata del tuo Cloud Function consente di autorizzare tutto il traffico. Puoi usare questa impostazione o un'impostazione più restrittiva.

    Quando consenti tutto il traffico, viene avviata la prima fase di convalida, eseguita da Cloud Functions, che viene eseguita a livello di rete, pass. La seconda fase della convalida determina se il chiamante ha ricevuto l'autorizzazione per eseguire la Cloud Function. L'autorizzazione dipende dal Ruolo IAM (Identity and Access Management). Per impostazione predefinita, a Cloud Monitoring viene concessa l'autorizzazione la funzione Cloud Function. Per informazioni su come visualizzare o modificare Impostazioni di trasferimento dei dati in entrata, consulta Impostazioni in entrata.

Limitazioni della Cloud Function

  • Il nome della Cloud Function non deve contenere un trattino basso.

  • Puoi raccogliere dati di traccia e di log per le richieste HTTP in uscita solo quando utilizzare il modello generico.

  • Sono supportate solo le funzioni HTTP. Se utilizzi Console Google Cloud per creare il monitoraggio sintetico, ti verrà fornito una funzione predefinita che esegue una query su un URL. L'origine della funzione predefinita, che può essere modificato, è disponibile generic-synthetic-nodejs Repository Git.

    Per informazioni sulle funzioni HTTP, consulta l'articolo Scrivere funzioni HTTP.

  • Se utilizzi l'API, il comando deployment deve specificare che La Cloud Function è di seconda generazione. Se utilizzi Google Cloud, a questo punto il deployment viene gestito per te. Per ulteriori informazioni consulta Deployment di una funzione Cloud Functions.

  • L'ambiente di runtime è limitato a Node.js. Per informazioni, consulta Nodo. Le seguenti versioni di Node.js 12, 14, 16, 18 e 20.

Dati raccolti da monitoraggi sintetici

Questa sezione descrive i dati raccolti per il monitoraggio sintetico. Per informazioni su come visualizzare i risultati dell'esecuzione, consulta Esplora i risultati del monitoraggio sintetico.

Cronologia esecuzioni

Per ogni monitoraggio sintetico, viene raccolta una cronologia dei risultati di esecuzione. Questi dati includono:

  • Una serie temporale che registra le esecuzioni riuscite o non riuscite nel tempo.

  • Una serie temporale che registra la durata di esecuzione del codice. La di esecuzione della funzione non viene registrato. I dati di latenza vengono scritti come serie temporale uptime_check/request_latency per la risorsa Cloud Run che la Cloud Function in esecuzione. Un grafico di questi dati viene fornito Pagina Dettagli del monitor sintetico.

  • Log che contengono informazioni su esecuzioni di monitor sintetici, come informazioni dettagli su test ed errori. I log disponibili dipendono la funzione Cloud Function. Ad esempio, se utilizzi il modello Mocha, il parametro I log includono informazioni sullo stato del test superato o non riuscito e durata massima. L'analisi dello stack, se inclusa, elenca la riga di codice non riuscita, i tipi e i messaggi di errore.

  • Facoltativamente, tracce e log per le richieste HTTP in uscita. Per informazioni su come raccogliere questi dati, consulta l'articolo Latenza della richiesta.

Metriche e log della Cloud Function

Metriche e log per la Cloud Function. Questi dati, ovvero raccolte da Cloud Functions, includono informazioni sul numero di esecuzioni al secondo, tempo di esecuzione e utilizzo della memoria la tua funzione.

Latenza di richiesta

I dati sulla latenza per la richiesta HTTP effettuata dal monitoraggio sintetico vengono automaticamente raccolte e archiviate da Cloud Trace.

Per raccogliere dati di traccia, log e latenza per le richieste HTTP in uscita effettuate dal il monitoraggio sintetico, devi utilizzare modello generico. Per saperne di più, consulta Campioni per monitoraggi sintetici.

Prima di iniziare

  1. Per ottenere le autorizzazioni necessarie per visualizzare e modificare i monitoraggi sintetici utilizzando la console Google Cloud, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto:

    Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.

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

    Abilita le API

  3. Verifica che il progetto Google Cloud contenga il Compute Engine predefinito l'account di servizio. Questo account di servizio viene creato quando abiliti la dell'API Compute Engine e ha un nome simile 12345-compute@developer.gserviceaccount.com.

    Nella console Google Cloud, vai alla pagina Account di servizio:

    Vai ad Account di servizio

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

    Se l'account di servizio Compute Engine predefinito non esiste, fai clic su Crea account di servizio e completa la finestra di dialogo.

  4. Assicurati che l'account di servizio Compute Engine predefinito o creato dall'account di servizio ha ricevuto il ruolo di Editor (roles/editor).

    Per visualizzare i ruoli concessi al tuo account di servizio:

    1. Nella console Google Cloud, vai alla pagina IAM:

      Vai a IAM

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

    2. Seleziona Includi concessioni dei ruoli fornite da Google.
    3. Se l'account di servizio utilizzato dal monitoraggio sintetico non è nell'elenco o se non gli è stato concesso un ruolo che include le autorizzazioni nel ruolo dell'agente Cloud Trace (roles/cloudtrace.agent), quindi concedi questo ruolo a al tuo account di servizio.
  5. Configura i canali di notifica che vuoi utilizzare per la ricezione notifiche. Ti consigliamo di creare più tipi di notifiche canali. Per ulteriori informazioni, vedi Creare e gestire canali di notifica e Creare e gestire canali di notifica in base all'API.

Crea un monitoraggio sintetico

Console

Quando crei un monitoraggio sintetico utilizzando la console Google Cloud, viene Cloud Function Functions (2ª generazione.) viene eseguito il deployment e viene creato il monitoraggio per quella Cloud Function. Non puoi creare un monitoraggio sintetico per monitorare un una funzione Cloud Function esistente.

  1. Assicurati di avere attivato le API richieste, che il progetto contiene un account di servizio Compute Engine predefinito e che questo account abbia ha ricevuto il ruolo di Editor (roles/editor). Per ulteriori informazioni, vedi Prima di iniziare.
  2. Nella console Google Cloud, vai alla Pagina Monitoraggio sintetico:

    Vai a Monitoraggio sintetico

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

  3. Seleziona Crea monitoraggio sintetico.
  4. Seleziona il modello per la Cloud Function:

    • Monitoraggio sintetico personalizzato: utilizza questo modello quando vuoi raccogliere registrare i dati o i dati di traccia per le richieste HTTP in uscita.

    • Monitor sintetico Mocha: usa questo modello quando scrivi Suite di test Mocha.

    • Verifica link non funzionante: utilizza questo modello per testare un URI e un numero configurabile di link trovati in quell'URI. Per informazioni sui campi di questo controllo, vedi Crea uno strumento di verifica dei link inaccessibili.

  5. Inserisci un nome per il monitor.

  6. (Facoltativo) Aggiorna il Timeout risposta, la Frequenza di controllo e aggiungere etichette definite dall'utente.

  7. Esegui una di queste operazioni:

  8. Nella finestra di dialogo funzione Cloud Function Functions, segui questi passaggi:

    1. Inserisci un nome visualizzato e seleziona una regione. I nomi devono essere univoci all'interno di un regione.

    2. Nella sezione Impostazioni runtime, build, connessioni e sicurezza, procedi nel seguente modo:

      • Rivedi le impostazioni predefinite e aggiornale quando necessario.

      • Nel campo Account di servizio di runtime, seleziona un account di servizio.

    3. Modifica il codice generato oppure scrivi o carica il codice per il tuo Cloud Function:

      • Per modificare il codice generato, inserisci il tuo codice o carica il funzione di esempio predefinita, Seleziona Editor incorporato. La funzione di esempio, che dipende al modello selezionato in precedenza, invia una richiesta a un URL specifico. Puoi modificare la funzione predefinita.

      • Per caricare un file ZIP dal tuo sistema locale, seleziona Caricamento ZIP.

        Se carichi un file ZIP dal tuo sistema locale, devi: e specificare anche un bucket Cloud Storage per il file ZIP. Se non disponi di un bucket Cloud Storage appropriato, creane uno.

      • Per caricare un file ZIP da Cloud Storage, seleziona ZIP da Cloud Storage, seleziona il bucket di archiviazione e poi seleziona il file ZIP da caricare.

        Puoi anche creare una Cloud Function utilizzando pagine di Cloud Functions nella console Google Cloud. Per creare un sintetico che monitora copia di quella Cloud Function, vai alla scheda Origine e fai clic su Scarica zip. Dopodiché potrai caricare il file ZIP.

    4. Fai clic su Applica funzione.

  9. Configura il criterio di avviso:

    1. (Facoltativo) Aggiorna il nome del criterio di avviso e la durata dell'errore prima dell'invio delle notifiche.

    2. Aggiungi i canali di notifica.

  10. Fai clic su Crea.

    La funzione Cloud Functions che hai definito viene creata e ne viene eseguito il deployment È stato creato il monitoraggio sintetico di 2ª generazione.

gcloud

Quando crei un monitoraggio sintetico utilizzando Google Cloud CLI o l'API Cloud Monitoring, passi il il nome della funzione alla chiamata API. Di conseguenza, puoi creare un monitoraggio sintetico che monitora una Cloud Function esistente.

  1. Assicurati di avere attivato le API richieste, che il progetto contiene un account di servizio Compute Engine predefinito e che questo account abbia ha ricevuto il ruolo di Editor (roles/editor). Per ulteriori informazioni, vedi Prima di iniziare.
  2. Scrivi ed esegui il deployment dei tuoi 2ª generazione la funzione Cloud Function.

    Ad esempio, per eseguire il deployment dell'esempio synthetics-sdk-nodejs nel repository Google Cloud/synthetics-sdk-nodejs, procedi nel seguente modo:

    1. Clona il repository e vai alla posizione del codice sorgente:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Esegui il deployment della Cloud Function utilizzando Comando gcloud functions deploy:

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

      Nel comando gcloud functions deploy, segui questi passaggi:

      • Assicurati che il valore del campo FUNCTION_NAME è unica all'interno della sua regione di deployment.

      • Includi il flag --gen2 e imposta la regione di deployment.

      • Imposta il campo --entry-point come segue:

        • Moca: SyntheticMochaSuite
        • Non Mocha: SyntheticFunction.
      • Imposta il campo --runtime su nodejs18.

      • Includi il flag --trigger-http.

      • Imposta il campo --ingress-settings quando non vuoi utilizzare quello predefinito che consente tutto il traffico.

      Cloud Functions crea ed esegue il deployment della tua Cloud Function. I risultati del comando Google Cloud CLI includono informazioni sulla incluso il nome completo:

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

      Per ulteriori informazioni sul deployment di una funzione, consulta Esegui il deployment di una funzione Cloud Functions.

    Per elencare le funzioni Cloud Functions nel tuo progetto Google Cloud, utilizza Comando gcloud functions list:

    gcloud functions list
    

    La risposta a questa chiamata è una voce di elenco, ogni voce elenca una Cloud Function:

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

    Per trovare il nome completo per una Cloud Function specifica, esegui il comando gcloud monitoring uptime describe.

  3. Per creare il monitoraggio sintetico, esegui il comando Comando gcloud monitoring uptime create:

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

    Prima di eseguire il comando precedente, segui questi passaggi:

    • Sostituisci DISPLAY_NAME con il nome del monitoraggio sintetico.
    • Sostituisci TARGET con il nome completo del tuo la funzione Cloud Function.
  4. Crea un criterio di avviso.

    Data la complessità del criterio di avviso configurazione, ti consigliamo di passare ai monitor sintetici nella console Google Cloud e utilizzare le opzioni per creare criterio di avviso. Con questo approccio, la maggior parte dei campi criterio di avviso compilati automaticamente. Per creare il criterio di avviso utilizzando il comando Nella console Google Cloud, fai clic su Crea criterio dalla Pagina Monitor sintetici.

    Se prevedi di utilizzare Google Cloud CLI o l'API Cloud Monitoring, configura il filtro della condizione nel seguente modo:

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

    La condizione monitora uptime_check/check_passed di serie temporali scritte dal tuo monitor sintetico. Assicurati di sostituire CHECK_ID con l'identificatore del monitoraggio sintetico e che è incluso nei dati di risposta di un kubectl create.

    Per informazioni su come creare un criterio di avviso, consulta Crea criteri di avviso utilizzando l'API.

API

Quando crei un monitoraggio sintetico utilizzando Google Cloud CLI o l'API Cloud Monitoring, passi il il nome della funzione alla chiamata API. Di conseguenza, puoi creare un monitoraggio sintetico che monitora una Cloud Function esistente.

  1. Assicurati di avere attivato le API richieste, che il progetto contiene un account di servizio Compute Engine predefinito e che questo account abbia ha ricevuto il ruolo di Editor (roles/editor). Per ulteriori informazioni, vedi Prima di iniziare.
  2. Scrivi ed esegui il deployment dei tuoi 2ª generazione la funzione Cloud Function.

    Ad esempio, per eseguire il deployment dell'esempio synthetics-sdk-nodejs nel repository Google Cloud/synthetics-sdk-nodejs, procedi nel seguente modo:

    1. Clona il repository e vai alla posizione del codice sorgente:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Esegui il deployment della Cloud Function utilizzando Comando gcloud functions deploy:

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

      Nel comando gcloud functions deploy, segui questi passaggi:

      • Assicurati che il valore del campo FUNCTION_NAME è unica all'interno della sua regione di deployment.

      • Includi il flag --gen2 e imposta la regione di deployment.

      • Imposta il campo --entry-point come segue:

        • Moca: SyntheticMochaSuite
        • Non Mocha: SyntheticFunction.
      • Imposta il campo --runtime su nodejs18.

      • Includi il flag --trigger-http.

      • Imposta il campo --ingress-settings quando non vuoi utilizzare quello predefinito che consente tutto il traffico.

      Cloud Functions crea ed esegue il deployment della tua Cloud Function. I risultati del comando Google Cloud CLI includono informazioni sulla incluso il nome completo:

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

      Per ulteriori informazioni sul deployment di una funzione, consulta Esegui il deployment di una funzione Cloud Functions.

    Per elencare le funzioni Cloud Functions nel tuo progetto Google Cloud, utilizza Comando gcloud functions list:

    gcloud functions list
    

    La risposta a questa chiamata è una voce di elenco, ogni voce elenca una Cloud Function:

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

    Per trovare il nome completo per una Cloud Function specifica, esegui il comando gcloud monitoring uptime describe.

  3. Per creare un monitoraggio sintetico:

    1. Fai clic su projects.uptimeCheckConfigs.create. per aprire la pagina di riferimento dell'API per il metodo.
    2. Fai clic su Prova per aprire Explorer API.
    3. Imposta i campi seguenti ed esegui il comando.

      • Campo principale: projects/PROJECT_ID.
      • Nel corpo della richiesta, specifica quanto segue:

        • displayName: imposta il nome visualizzato del monitor sintetico.
        • syntheticMonitor: imposta il nome completo del tuo la funzione Cloud Function.

      Se l'operazione riesce, la risposta alla chiamata API è simile alla seguente:

      {
      "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. Crea un criterio di avviso.

    Data la complessità del criterio di avviso configurazione, ti consigliamo di passare ai monitor sintetici nella console Google Cloud e utilizzare le opzioni per creare criterio di avviso. Con questo approccio, la maggior parte dei campi criterio di avviso compilati automaticamente. Per creare il criterio di avviso utilizzando il comando Nella console Google Cloud, fai clic su Crea criterio dalla Pagina Monitor sintetici.

    Se prevedi di utilizzare Google Cloud CLI o l'API Cloud Monitoring, configura il filtro della condizione nel seguente modo:

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

    La condizione monitora uptime_check/check_passed serie temporali scritte dal tuo monitor sintetico. Assicurati di sostituire CHECK_ID con l'identificatore del monitoraggio sintetico e che è incluso nei dati di risposta di un kubectl create.

    Per informazioni su come creare un criterio di avviso, consulta Crea criteri di avviso utilizzando l'API.

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta: Comandi Terraform di base. Per ulteriori informazioni, consulta Terraform documentazione di riferimento del provider.

Per creare un monitoraggio sintetico e un criterio di avviso per monitorare il controllo, procedi nel seguente modo:

  1. Assicurati di avere attivato le API richieste, che il progetto contiene un account di servizio Compute Engine predefinito e che questo account abbia ha ricevuto il ruolo di Editor (roles/editor). Per ulteriori informazioni, vedi Prima di iniziare.

  2. Modifica il file di configurazione di Terraform e aggiungi un google_storage_bucket risorsa e poi e applicare le modifiche.

    Il codice seguente definisce un bucket Cloud Storage nella località US:

    resource "google_storage_bucket" "gcf_source" {
       name = "gcf-v2-source-9948673986912-us"
       location = "US"
       uniform_bucket_level_access = true
    }
    
  3. Modifica il file di configurazione di Terraform e aggiungi un google_storage_bucket_object risorsa e applicare le modifiche.

    La risorsa specifica il nome dell'oggetto nel bucket, e la posizione del file ZIP nel sistema locale. Ad esempio, quando applichi il codice riportato di seguito, un file con il nome example-function.zip è stato aggiunto al tuo bucket di archiviazione:

    resource "google_storage_bucket_object" "object" {
       name = "example-function.zip"
       bucket = google_storage_bucket.gcf_source.name
       source = "generic-synthetic-node.js.zip"
    }
    
  4. Modifica il file di configurazione di Terraform e aggiungi un google_cloudfunctions2_function risorsa e applicare le modifiche.

    Assicurati che la risorsa google_cloudfunctions2_function specifichi un runtime Node.js e il punto di ingresso utilizzato dai monitoraggi sintetici. Ad esempio, quando applichi il codice seguente, una funzione con il nome Deployment di sm-central1 completato:

    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. Per creare un monitoraggio sintetico, modifica il file di configurazione di Terraform e aggiungi un elemento google_monitoring_uptime_check_config risorsa e applicare le modifiche.

    Per questa risorsa, specifica il blocco 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. (Facoltativo) Crea un canale di notifica e un criterio di avviso.

    Nei passaggi seguenti viene utilizzata la console Google Cloud per creare la notifica il canale e il criterio di avviso. Questo approccio garantisce che il criterio di avviso esegue il monitoraggio solo dei dati generati dal monitoraggio sintetico.

    1. Per creare un canale di notifica:

      1. Nella console Google Cloud, vai alla Pagina Avvisi:

        Vai ad Avvisi

        Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

      2. Seleziona Gestisci canali di notifica.
      3. Vai al tipo di canale che vuoi aggiungere, fai clic su Aggiungi e quindi completa la finestra di dialogo.
    2. Per creare un criterio di avviso, segui questi passaggi:

      1. Nella console Google Cloud, vai alla Pagina Monitoraggio sintetico:

        Vai a Monitoraggio sintetico

        Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

      2. Individua il monitoraggio sintetico, seleziona Altro, e seleziona Aggiungi criterio di avviso.
      3. Nella finestra di dialogo, vai alla sezione Notifiche e nome. espandi Canali di notifica ed effettua le selezioni desiderate.
      4. Assegna un nome al criterio di avviso e fai clic su Crea criterio.

Prezzi

In generale, le metriche di sistema di Cloud Monitoring sono gratuite, mentre da sistemi, agenti o applicazioni esterni. Le metriche fatturabili sono e fatturato in base al numero di byte o al numero di campioni importati.

Per ulteriori informazioni sui prezzi di Cloud Monitoring, consulta i seguenti documenti:

Risoluzione dei problemi dei monitoraggi sintetici

Questa sezione fornisce informazioni che possono aiutarti a risolvere i problemi i tuoi monitor sintetici.

Messaggio di errore dopo l'abilitazione delle API

Apri il flusso di creazione per un monitoraggio sintetico e ti viene chiesto di abilitarlo almeno un'API. Dopo aver abilitato le API, viene visualizzato un messaggio simile al seguente è visualizzato:

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

Il messaggio di errore consiglia di verificare che l'API sia abilitata e poi ti consiglia di attendere e riprovare l'azione.

Per verificare che l'API sia abilitata, vai alla scheda API e Servizi per il tuo progetto:

Vai ad API e Servizi

Dopo aver verificato che l'API è abilitata, puoi continuare con le per creare il flusso. La condizione si risolve automaticamente dopo che l'API l'abilitazione si propaga attraverso il backend.

Le richieste HTTP in uscita non vengono rintracciate

Configura il monitoraggio sintetico per raccogliere i dati di traccia per l'output richieste HTTP. I dati di traccia mostrano solo un intervallo, simile al seguente screenshot:

Cloud Trace che mostra una sola traccia.

Per risolvere la situazione, assicurati che il tuo account di servizio dispone del ruolo di agente Cloud Trace (roles/cloudtrace.agent). È sufficiente anche il ruolo Editor (roles/editor).

Per visualizzare i ruoli concessi al tuo account di servizio:

  1. Nella console Google Cloud, vai alla pagina IAM:

    Vai a IAM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

  2. Seleziona Includi concessioni dei ruoli fornite da Google.
  3. Se l'account di servizio utilizzato dal monitoraggio sintetico non è in elenco o se non dispone di un ruolo che include le autorizzazioni nel ruolo l'agente Cloud Trace (roles/cloudtrace.agent), quindi concedi questo ruolo al tuo l'account di servizio.

    Se non conosci il nome del tuo account di servizio, nella barra di navigazione seleziona Account di servizio.

Stato In corso

Nella pagina Monitor sintetici è elencato un monitor sintetico con stato In progress. Lo stato In progress indica che il monitoraggio sintetico è stato creato di recente e non ci sono dati da visualizzare, o che il deployment della funzione non è riuscito.

Per determinare se il deployment della funzione non è riuscito, prova a eseguire questi passaggi:

  • Assicurati che il nome della Cloud Function contiene un trattino basso. Se è presente un trattino basso, rimuovilo. ed eseguire nuovamente il deployment della Cloud Function.

  • Apri la pagina Dettagli del monitor sintetico del monitor sintetico.

    Se viene visualizzato il seguente messaggio, elimina il monitoraggio sintetico.

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

    Il messaggio di errore indica che la funzione è stata eliminata e, di conseguenza, il monitoraggio sintetico non è in grado di eseguire la funzione.

  • Apri la pagina Cloud Functions per la funzione. Per aprire questa pagina Dalla pagina Dettagli monitoraggio sintetico, fai clic su Codice e poi fai clic sul nome della funzione.

    Se viene visualizzato un messaggio simile al seguente, la funzione non è riuscita. di cui eseguire il deployment.

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

    Per risolvere l'errore, esamina il codice della funzione e correggi gli errori che impediscono la creazione o il deployment della funzione.

Quando crei un monitoraggio sintetico, potrebbero essere necessari diversi minuti di cui eseguire il deployment e che deve eseguire.

Stato avviso

Monitor sintetici elenca un monitoraggio sintetico con stato Warning. Lo stato Warning indica che l'esecuzione i risultati non sono coerenti. Questo potrebbe indicare un problema di progettazione test o potrebbe indicare che ciò che viene testato ha un comportamento incoerente.

Stato di errore

Monitor sintetici elenca un monitoraggio sintetico con lo stato Failing. Per ulteriori informazioni sul motivo dell'errore, visualizza la cronologia di esecuzione più recente.

  • Se viene visualizzato il messaggio di errore Request failed with status code 429, la destinazione della richiesta HTTP ha rifiutato il comando. Per risolvere il problema in caso di errore, devi modificare la destinazione del monitoraggio sintetico.

    L'endpoint https://www.google.com rifiuta le richieste effettuate da monitor sintetici.

  • Se l'errore restituisce un tempo di esecuzione pari a 0ms, l'errore È possibile che la Cloud Function stia esaurendo la memoria. Per risolvere il problema in un errore, modifica la funzione Cloud Function e aumenta su almeno 2 GiB e imposta il campo CPU su 1.

L'eliminazione non riesce per un monitoraggio sintetico

Puoi utilizzare l'API Cloud Monitoring per eliminare un monitoraggio sintetico, ma l'API non riesce e restituisce una risposta simile alla seguente:

{
  "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."
      }
    ]
  }
}

Per risolvere l'errore, elimina i criteri di avviso monitorare i risultati del monitoraggio sintetico ed eliminare il monitoraggio sintetico.

Passaggi successivi