Synthetischen Monitor erstellen

In diesem Dokument wird beschrieben, wie Sie synthetische Monitore erstellen können, um die Verfügbarkeit, Konsistenz und Leistung Ihrer Dienste, Anwendungen, Webseiten und APIs zu testen. Sie stellen Tests für Ihre Anwendung bereit. Der synthetische Monitor führt das Skript aus und zeichnet die Testergebnisse und zusätzliche Daten wie die Latenz auf. Wenn Sie benachrichtigt werden möchten, wenn ein Test fehlschlägt, können Sie eine Benachrichtigungsrichtlinie konfigurieren, um die Testergebnisse zu überwachen.

Diese Funktion wird nur für Google Cloud -Projekte unterstützt. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.

Synthetische Monitore

Ein synthetischer Monitor führt regelmäßig eine zweckgebundene Cloud Run-Funktion der 2. Generation aus, die in Cloud Run bereitgestellt wird. Wenn Sie den synthetischen Monitor erstellen, definieren Sie die Cloud Run-Funktion, die in Node.js geschrieben sein muss, und die Ausführungshäufigkeit. Sie können Ihre Cloud Run-Funktion beispielsweise so konfigurieren, dass sie mit einer Webseite interagiert, indem Sie Puppeteer verwenden. Sie können Ihre Cloud Run-Funktion auch so konfigurieren, dass sie mit einer API interagiert, indem Sie das Axios-Modul verwenden. Möglicherweise möchten Sie auch Ressourcen in einem VPC-Netzwerk testen.

Zum Erstellen Ihrer Cloud Run-Funktion können Sie einen Inline-Editor verwenden oder eine ZIP-Datei hochladen. Wenn Sie den Inline-Editor verwenden möchten, können Sie mit einem bereitgestellten Gerüst beginnen. Nachdem Sie einen synthetischen Monitor erstellt haben, verwendet Cloud Monitoring ein Planungssystem, das die regelmäßige Ausführung Ihrer Cloud Run-Funktion plant. Sie geben zwar die Region an, in der sich Ihre Cloud Run-Funktion befindet, die Befehle, die die Ausführung auslösen, können jedoch aus jeder Region stammen, die von den Uptime-Check-Servern unterstützt wird. Weitere Informationen finden Sie unter IP-Adressen von Servern für Verfügbarkeitsdiagnosen auflisten.

Sie können eine Benachrichtigungsrichtlinie erstellen, damit Sie benachrichtigt werden, wenn Testfehler auftreten:

  • Wenn Sie einen synthetischen Monitor über die Google Cloud Console erstellen, wird standardmäßig eine Benachrichtigungsrichtlinie erstellt. Sie stellen die Benachrichtigungskanäle bereit. Die Standardbenachrichtigungsrichtlinie ist so konfiguriert, dass Sie benachrichtigt werden, wenn zwei oder mehr aufeinanderfolgende Tests fehlschlagen.

  • Wenn Sie einen synthetischen Monitor mit der Cloud Monitoring API erstellen, müssen Sie die Benachrichtigungsrichtlinie erstellen, um den Messwerttyp uptime_check/check_passed für die Cloud Run-Ressource zu überwachen, auf der die Cloud Run-Funktion ausgeführt wird.

Überlegungen zur Ausführungshäufigkeit

Sie konfigurieren, wie oft Ihre Cloud Run-Funktion ausgeführt wird. Berücksichtigen Sie das Service Level Objective (SLO) für Ihren Dienst, um die Ausführungshäufigkeit zu bestimmen. Um potenzielle SLO-Verletzungen zu erkennen, müssen Sie die Tests häufig ausführen. Das SLO für Ihren Dienst ist jedoch nicht der einzige Faktor, der berücksichtigt werden muss. Sie müssen auch berücksichtigen, wie sich die Ausführungsrate auf die Last für Ihren Dienst und auf Ihre Kosten auswirkt. Jede Ausführung belastet Ihren Dienst. Je häufiger Sie Ihre Cloud Run-Funktion ausführen, desto höher ist die Belastung Ihres Dienstes. Das standardmäßige Ausführungsintervall für Verfügbarkeitsdiagnosen beträgt eine Minute.

Die Ausführungshäufigkeit bestimmt auch, wie schnell Sie benachrichtigt werden, wenn Ihr Test fehlschlägt. Cloud Monitoring erstellt einen Vorfall und sendet eine Benachrichtigung nach dem zweiten aufeinanderfolgenden Fehler eines Tests. Wenn die Ausführungshäufigkeit beispielsweise 5 Minuten beträgt, kann es 10 Minuten dauern, bis zwei fehlgeschlagene Tests vorliegen. Sie werden nach dem zweiten fehlgeschlagenen Test benachrichtigt.

Beispielcode für Cloud Run-Funktionen

Vorlagen und Beispiele finden Sie unter Beispiele für synthetische Monitore. Sie können diese Beispiele als Ausgangspunkt für Ihre Cloud Run-Funktion verwenden. Wenn Sie ein erfahrener Entwickler sind, können Sie Ihre Entwicklungszeit verkürzen, indem Sie Gemini verwenden, um Code für synthetische Monitore zu generieren. Die Funktion zum Generieren von Code mit Gemini ist in der öffentlichen Vorschau verfügbar.

Die generische Vorlage, die Sie beim Erstellen eines synthetischen Monitors über die Google Cloud Konsole auswählen können, ist so konfiguriert, dass Trace- und Logdaten für ausgehende HTTP-Anfragen erfasst werden. Die Lösung nutzt das OpenTelemetry-Modul auto-instrumentation-node und den Winston-Logger. Aufgrund der Abhängigkeit von Open-Source-Produkten können Sie mit Änderungen an der Struktur von Trace- und Logdaten rechnen. Die erfassten Trace- und Logdaten sollten daher nur zu Debugging-Zwecken verwendet werden.

Sie können Ihren eigenen Ansatz implementieren, um Trace- und Logdaten für ausgehende HTTP-Anfragen zu erfassen. Ein Beispiel für einen benutzerdefinierten Ansatz finden Sie in der Klasse SyntheticAutoInstrumentation.

Cloud Run-Funktionen konfigurieren

Wenn Sie Ihre Cloud Run-Funktion konfigurieren, müssen Sie entweder die Laufzeit-, Build-, Verbindungs- und Sicherheitseinstellungen angeben oder die Standardeinstellungen akzeptieren:

  • Der Standardwert für den zugewiesenen Speicher ist möglicherweise nicht ausreichend. Wir empfehlen, dieses Feld auf mindestens 2 GiB festzulegen.

  • Der Standardwert für die Einstellungen für eingehenden Datentransfer Ihrer Cloud Run-Funktion ist, dass der gesamte Traffic zugelassen wird. Sie können diese oder eine restriktivere Einstellung verwenden.

    Wenn Sie den gesamten Traffic zulassen, wird die erste Phase der Validierung, die von Cloud Run Functions auf Netzwerkebene durchgeführt wird, immer bestanden. In der zweiten Phase der Validierung wird ermittelt, ob dem Aufrufer die Berechtigung zum Ausführen der Cloud Run-Funktion erteilt wurde. Die Autorisierung hängt von der IAM-Rolle (Identity and Access Management) des Aufrufers ab. Standardmäßig hat Cloud Monitoring die Berechtigung, Ihre Cloud Run-Funktion auszuführen. Informationen zum Aufrufen oder Ändern der Einstellungen für die Übertragung eingehender Daten finden Sie unter Einstellungen für eingehenden Traffic.

Einschränkungen für Cloud Run-Funktionen

  • Der Name Ihrer Cloud Run-Funktion darf keinen Unterstrich enthalten.

  • Sie können Trace- und Protokolldaten für ausgehende HTTP-Anfragen nur erfassen, wenn Sie die generische Vorlage verwenden.

  • Es werden nur HTTP-Funktionen unterstützt. Wenn Sie dieGoogle Cloud -Konsole zum Erstellen des synthetischen Monitors verwenden, wird eine Standardfunktion bereitgestellt, mit der eine URL abgefragt wird. Der Quellcode für die Standardfunktion, die geändert werden kann, ist im generic-synthetic-nodejs-Git-Repository verfügbar.

    Informationen zu HTTP-Funktionen finden Sie unter HTTP-Funktionen schreiben.

  • Wenn Sie die API verwenden, muss im Bereitstellungsbefehl angegeben werden, dass die Cloud Run-Funktion der 2. Generation angehört. Wenn Sie dieGoogle Cloud Console verwenden, wird die Bereitstellung für Sie erledigt. Weitere Informationen finden Sie unter Cloud Run Functions bereitstellen.

  • Die Laufzeitumgebung ist auf Node.js beschränkt. Weitere Informationen finden Sie unter Knoten. Die folgenden Versionen von Node.js werden unterstützt: 12, 14, 16, 18 und 20.

Von synthetischen Monitoren erfasste Daten

In diesem Abschnitt werden die Daten beschrieben, die für Ihren synthetischen Monitor erfasst werden. Informationen zum Ansehen von Ausführungsergebnissen finden Sie unter Ergebnisse von synthetischen Monitoren ansehen.

Ausführungsverlauf

Für jeden synthetischen Monitor wird ein Verlauf der Ausführungsergebnisse erfasst. Dazu gehören:

  • Eine Zeitreihe, in der der Erfolg oder Misserfolg von Ausführungen im Zeitverlauf aufgezeichnet wird.

  • Eine Zeitreihe, in der die Ausführungsdauer des Codes aufgezeichnet wird. Die Ausführungszeit der Funktion wird nicht aufgezeichnet. Die Latenzdaten werden als uptime_check/request_latency-Zeitreihe für die Cloud Run-Ressource geschrieben, auf der die Cloud Run-Funktion ausgeführt wird. Ein Diagramm dieser Daten finden Sie auf der Seite Details zum synthetischen Monitor.

  • Logs, die Informationen zu Ausführungen synthetischer Monitore enthalten, z. B. Informationen zum Test und zu Fehlerdetails. Welche Logs verfügbar sind, hängt von Ihrer Cloud Run-Funktion ab. Wenn Sie beispielsweise die Vorlage Mocha verwenden, enthalten die Logs Informationen dazu, ob der Test bestanden oder fehlgeschlagen ist, sowie die Testdauer. Der Stacktrace enthält, sofern vorhanden, die Zeile des fehlgeschlagenen Codes, die Fehlertypen und die Fehlermeldungen.

  • Optional: Traces und Logs für ausgehende HTTP-Anfragen. Informationen zum Erheben dieser Daten finden Sie unter Anfragelatenz.

Messwerte und Logs von Cloud Run-Funktionen

Messwerte und Logs für Ihre Cloud Run-Funktion. Diese Daten, die von Cloud Run Functions erfasst werden, enthalten Informationen zur Anzahl der Ausführungen pro Sekunde, zur Ausführungszeit und zur Arbeitsspeichernutzung Ihrer Funktion.

Anfragelatenz

Latenzdaten für die HTTP-Anfrage des synthetischen Monitors werden automatisch von Cloud Trace erfasst und gespeichert.

Wenn Sie Daten zu Traces, Logs und Latenz für die ausgehenden HTTP-Anfragen erfassen möchten, die von Ihrem synthetischen Monitor gesendet werden, müssen Sie die generische Vorlage verwenden. Weitere Informationen finden Sie unter Beispiele für synthetische Monitore.

Hinweise

Führen Sie die folgenden Schritte im Google Cloud -Projekt aus, in dem der synthetische Monitor gespeichert werden soll:

  1. Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ansehen und Ändern von synthetischen Monitoren in der Google Cloud Console benötigen:

    Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

  2. Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.

    Enable the APIs

  3. Prüfen Sie, ob Ihr Google Cloud -Projekt das Compute Engine-Standarddienstkonto enthält. Dieses Dienstkonto wird erstellt, wenn Sie die Compute Engine API aktivieren, und hat einen Namen wie 12345-compute@developer.gserviceaccount.com.

    Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:

    Zur Seite Dienstkonten

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM & Admin ist.

    Wenn das Compute Engine-Standarddienstkonto nicht vorhanden ist, klicken Sie auf Dienstkonto erstellen und füllen Sie das Dialogfeld aus.

  4. Achten Sie darauf, dass dem Compute Engine-Standarddienstkonto oder dem von Ihnen erstellten Dienstkonto die Rolle „Bearbeiter“ (roles/editor) zugewiesen wurde.

    So rufen Sie die Rollen auf, die Ihrem Dienstkonto zugewiesen sind:

    1. Rufen Sie in der Google Cloud Console die Seite IAM auf:

      Rufen Sie IAM auf.

      Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM & Admin ist.

    2. Wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
    3. Wenn das von Ihrem synthetischen Monitor verwendete Dienstkonto nicht aufgeführt ist oder ihm keine Rolle mit den Berechtigungen der Rolle „Cloud Trace Agent“ (roles/cloudtrace.agent) zugewiesen wurde, weisen Sie Ihrem Dienstkonto diese Rolle zu.
  5. Konfigurieren Sie die Benachrichtigungskanäle, die Sie für Benachrichtigungen verwenden möchten. Wir empfehlen, mehrere Arten von Benachrichtigungskanälen zu erstellen. Weitere Informationen finden Sie unter Benachrichtigungskanäle erstellen und verwalten und Benachrichtigungskanäle über die API erstellen und verwalten.
  6. Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      Terraform

      Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

      1. Install the Google Cloud CLI.

      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

      Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.

      REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

      Synthetischen Monitor erstellen

      Console

      Wenn Sie einen synthetischen Monitor mit der Google Cloud -Konsole erstellen, wird eine neue Cloud Run-Funktion (2. Generation) bereitgestellt und der Monitor für diese Cloud Run-Funktion wird erstellt. Sie können keinen synthetischen Monitor erstellen, der eine vorhandene Cloud Run-Funktion überwacht.

      1. Achten Sie darauf, dass Sie die erforderlichen APIs aktiviert haben, dass Ihr Projekt ein Compute Engine-Standarddienstkonto enthält und dass diesem Konto die Rolle „Bearbeiter“ (roles/editor) zugewiesen wurde. Weitere Informationen finden Sie unter Vorbereitung.
      2. Rufen Sie in der Google Cloud Console die Seite Synthetisches Monitoring auf:

        Zu Synthetisches Monitoring

        Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

      3. Wählen Sie in der Symbolleiste der Google Cloud -Console Ihr Google Cloud -Projekt aus. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
      4. Wählen Sie Synthetischen Monitor erstellen aus.
      5. Wählen Sie die Vorlage für Ihre Cloud Run-Funktion aus:

        • Benutzerdefinierter synthetischer Monitor: Verwenden Sie diese Vorlage, wenn Sie Log- oder Tracedaten für ausgehende HTTP-Anfragen erfassen möchten.

        • Synthetischer Mocha-Monitor: Verwenden Sie diese Vorlage, wenn Sie Mocha-Test-Suites schreiben.

        • Prüfung auf defekte Links: Mit dieser Vorlage können Sie einen URI und eine konfigurierbare Anzahl von Links testen, die unter diesem URI gefunden wurden. Informationen zu den Feldern für diese Prüfung finden Sie unter Prüfung auf defekte Links erstellen.

      6. Geben Sie einen Namen für den Monitor ein.

      7. Optional: Aktualisieren Sie das Zeitlimit für Antworten und die Prüfhäufigkeit und fügen Sie benutzerdefinierte Labels hinzu.

      8. Führen Sie einen der folgenden Schritte aus:

      9. Gehen Sie im Dialogfeld „Cloud Run Functions“ so vor:

        1. Geben Sie einen Anzeigenamen ein und wählen Sie eine Region aus. Namen müssen innerhalb einer Region eindeutig sein.

        2. Führen Sie im Abschnitt Laufzeit, Build, Verbindungen und Sicherheitseinstellungen folgende Schritte aus:

          • Überprüfen Sie die Standardeinstellungen und aktualisieren Sie sie bei Bedarf.

          • Wählen Sie im Feld Laufzeitdienstkonto ein Dienstkonto aus.

        3. Generierten Code bearbeiten oder Code für Ihre Cloud Run-Funktion schreiben oder hochladen:

          • Wenn Sie generierten Code bearbeiten, eigenen Code eingeben oder die Standardbeispiel-Funktion laden möchten, wählen Sie Inline-Editor aus. Die Beispielfunktion, die von der zuvor ausgewählten Vorlage abhängt, sendet eine Anfrage an eine bestimmte URL. Sie können die Standardfunktion ändern.

          • Wenn Sie eine ZIP-Datei von Ihrem lokalen System laden möchten, wählen Sie ZIP-Upload aus.

            Wenn Sie eine ZIP-Datei von Ihrem lokalen System hochladen, müssen Sie auch einen Cloud Storage-Bucket für die ZIP-Datei angeben. Wenn Sie keinen geeigneten Cloud Storage-Bucket haben, erstellen Sie einen.

          • Wenn Sie eine ZIP-Datei aus Cloud Storage laden möchten, wählen Sie ZIP aus Cloud Storage aus, wählen Sie den Speicher-Bucket und dann die zu ladende ZIP-Datei aus.

            Sie können auch eine Cloud Run-Funktion erstellen, indem Sie die Seiten für Cloud Run-Funktionen in der Google Cloud -Konsole verwenden. Wenn Sie einen synthetischen Monitor erstellen möchten, der eine Kopie dieser Cloud Run-Funktion überwacht, rufen Sie den Tab Quelle auf und klicken Sie auf ZIP herunterladen. Anschließend können Sie die ZIP-Datei hochladen.

        4. Klicken Sie auf Funktion anwenden.

      10. Konfigurieren Sie die Benachrichtigungsrichtlinie:

        1. Optional: Aktualisieren Sie den Namen der Benachrichtigungsrichtlinie und die Dauer des Fehlers, bevor Benachrichtigungen gesendet werden.

        2. Fügen Sie die Benachrichtigungskanäle hinzu.

      11. Klicken Sie auf Erstellen.

        Die von Ihnen definierte Cloud Run-Funktion wird als 2. Generation erstellt und bereitgestellt und der synthetische Monitor wird erstellt.

      gcloud

      Wenn Sie einen synthetischen Monitor mit der Google Cloud CLI oder der Cloud Monitoring API erstellen, übergeben Sie den Funktionsnamen an den API-Aufruf. Daher können Sie nur einen synthetischen Monitor erstellen, der eine vorhandene Cloud Run-Funktion überwacht.

      1. Achten Sie darauf, dass Sie die erforderlichen APIs aktiviert haben, dass Ihr Projekt ein Compute Engine-Standarddienstkonto enthält und dass diesem Konto die Rolle „Bearbeiter“ (roles/editor) zugewiesen wurde. Weitere Informationen finden Sie unter Vorbereitung.
      2. Konfigurieren Sie die Google Cloud CLI so, dass ein Standardprojekt mit dem Befehl gcloud config set festgelegt wird:

        gcloud config set project PROJECT_ID
        

        Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:

        • PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
      3. Cloud Run Functions der 2. Generation schreiben und bereitstellen

        So stellen Sie beispielsweise das synthetics-sdk-nodejs-Beispiel im Repository Google Cloud/synthetics-sdk-nodejs bereit:

        1. Klonen Sie das Repository und wechseln Sie zum Speicherort des Quellcodes:

          git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
          cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
          
        2. Stellen Sie die Cloud Run-Funktion mit dem Befehl gcloud functions deploy bereit:

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

          Führen Sie im Befehl gcloud functions deploy folgende Schritte aus:

          • Der Wert des Felds FUNCTION_NAME muss in der Bereitstellungsregion eindeutig sein.

          • Fügen Sie das Flag --gen2 ein und legen Sie die Bereitstellungsregion fest.

          • Legen Sie das Feld --entry-point so fest:

            • Mocha: SyntheticMochaSuite
            • Nicht Mocha: SyntheticFunction.
          • Setzen Sie das Feld --runtime auf nodejs18.

          • Fügen Sie das Flag --trigger-http ein.

          • Legen Sie das Feld --ingress-settings fest, wenn Sie nicht die Standardeinstellung verwenden möchten, die gesamten Traffic zulässt.

          Cloud Run-Funktionen erstellen und stellen dann Ihre Cloud Run-Funktion bereit. Die Ergebnisse des Google Cloud CLI-Befehls enthalten Informationen zur Funktion, einschließlich ihres vollqualifizierten Namens:

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

          Weitere Informationen zum Bereitstellen einer Funktion finden Sie unter Cloud Run-Funktion bereitstellen.

        Verwenden Sie den Befehl gcloud functions list, um die Cloud Run-Funktionen in Ihrem Google Cloud Projekt aufzulisten:

        gcloud functions list
        

        Die Antwort auf diesen Aufruf ist eine Liste mit Einträgen, wobei jeder Eintrag eine Cloud Run-Funktion auflistet:

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

        Wenn Sie den vollqualifizierten Namen einer bestimmten Cloud Run-Funktion ermitteln möchten, führen Sie den Befehl gcloud monitoring uptime describe aus.

      4. Führen Sie den Befehl gcloud monitoring uptime create aus, um den synthetischen Monitor zu erstellen:

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

        Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:

        • DISPLAY_NAME: Der Name des synthetischen Monitors.
        • TARGET: Der vollständig qualifizierte Name Ihrer Cloud Run-Funktion.
      5. Erstellen Sie eine Benachrichtigungsrichtlinie.

        Aufgrund der Komplexität der Konfiguration von Benachrichtigungsrichtlinien empfehlen wir, in der Google Cloud Konsole die Seite Synthetische Monitore aufzurufen und die Optionen zum Erstellen einer Benachrichtigungsrichtlinie zu verwenden. Bei diesem Ansatz werden die meisten Felder der Benachrichtigungsrichtlinie automatisch ausgefüllt. Wenn Sie die Benachrichtigungsrichtlinie mit derGoogle Cloud Console erstellen möchten, klicken Sie auf der Seite Synthetische Monitore auf Richtlinie erstellen.

        Wenn Sie die Google Cloud CLI oder die Cloud Monitoring API verwenden möchten, konfigurieren Sie den Filter der Bedingung so:

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

        Mit der Bedingung werden uptime_check/check_passed-Zeitreihen überwacht, die von Ihrem synthetischen Monitor geschrieben werden. Ersetzen Sie CHECK_ID durch die Kennung des synthetischen Monitors, die in den Antwortdaten eines „create“-Befehls enthalten ist.

        Informationen zum Erstellen einer Benachrichtigungsrichtlinie finden Sie unter Benachrichtigungsrichtlinien mit der API erstellen.

      Terraform

      Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle. Weitere Informationen finden Sie in der Anbieterreferenzdokumentation zu Terraform.

      So erstellen Sie einen synthetischen Monitor und eine Benachrichtigungsrichtlinie, um diese Prüfung zu überwachen:

      1. Installieren und konfigurieren Sie Terraform für Ihr Projekt. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.

      2. Achten Sie darauf, dass Sie die erforderlichen APIs aktiviert haben, dass Ihr Projekt ein Compute Engine-Standarddienstkonto enthält und dass diesem Konto die Rolle „Bearbeiter“ (roles/editor) zugewiesen wurde. Weitere Informationen finden Sie unter Vorbereitung.

      3. Bearbeiten Sie Ihre Terraform-Konfigurationsdatei und fügen Sie eine google_storage_bucket-Ressource hinzu. Wenden Sie dann Ihre Änderungen an.

        Der folgende Code definiert einen Cloud Storage-Bucket am Speicherort US:

        resource "google_storage_bucket" "gcf_source" {
           name = "gcf-v2-source-9948673986912-us"
           location = "US"
           uniform_bucket_level_access = true
        }
        
      4. Bearbeiten Sie Ihre Terraform-Konfigurationsdatei, fügen Sie eine google_storage_bucket_object-Ressource hinzu und wenden Sie dann Ihre Änderungen an.

        Die Ressource gibt den Namen des Objekts in Ihrem Bucket und den Speicherort der ZIP-Datei auf Ihrem lokalen System an. Wenn Sie beispielsweise den folgenden Code anwenden, wird Ihrem Speicher-Bucket eine Datei mit dem Namen example-function.zip hinzugefügt:

        resource "google_storage_bucket_object" "object" {
           name = "example-function.zip"
           bucket = google_storage_bucket.gcf_source.name
           source = "generic-synthetic-node.js.zip"
        }
        
      5. Bearbeiten Sie Ihre Terraform-Konfigurationsdatei, fügen Sie eine google_cloudfunctions2_function-Ressource hinzu und wenden Sie dann Ihre Änderungen an.

        Achten Sie darauf, dass in Ihrer google_cloudfunctions2_function-Ressource eine Node.js-Laufzeitumgebung und der von synthetischen Monitoren verwendete Einstiegspunkt angegeben sind. Wenn Sie beispielsweise den folgenden Code anwenden, wird eine Funktion mit dem Namen sm-central1 bereitgestellt:

        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
           }
        }
        
      6. Wenn Sie einen synthetischen Monitor erstellen möchten, bearbeiten Sie Ihre Terraform-Konfigurationsdatei, fügen Sie eine google_monitoring_uptime_check_config-Ressource hinzu und wenden Sie dann Ihre Änderungen an.

        Geben Sie für diese Ressource den Block synthetic_monitor an:

        resource "google_monitoring_uptime_check_config" "synthetic" {
           display_name = "sm-central1"
           timeout = "30s"
        
           synthetic_monitor {
              cloud_function_v2 {
                    name = google_cloudfunctions2_function.central1.id
              }
           }
        }
        
      7. Optional: Erstellen Sie einen Benachrichtigungskanal und eine Benachrichtigungsrichtlinie.

        In den folgenden Schritten wird die Google Cloud Console verwendet, um den Benachrichtigungskanal und die Benachrichtigungsrichtlinie zu erstellen. So wird sichergestellt, dass mit der Benachrichtigungsrichtlinie nur die Daten überwacht werden, die von Ihrem synthetischen Monitor generiert werden.

        1. So erstellen Sie einen Benachrichtigungskanal:

          1. Rufen Sie in der Google Cloud Console- die Seite Benachrichtigungen auf:

            Zu Benachrichtigungen

            Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

          2. Wählen Sie Benachrichtigungskanäle verwalten aus.
          3. Rufen Sie den gewünschten Channneltyp auf, klicken Sie auf Hinzufügen und füllen Sie das Dialogfeld aus.
        2. So erstellen Sie eine Benachrichtigungsrichtlinie:

          1. Rufen Sie in der Google Cloud Console die Seite Synthetisches Monitoring auf:

            Zu Synthetisches Monitoring

            Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

          2. Suchen Sie nach dem synthetischen Monitor, wählen Sie  Mehr und dann Benachrichtigungsrichtlinie hinzufügen aus.
          3. Rufen Sie im Dialogfeld den Bereich Benachrichtigungen und Name auf, maximieren Sie Benachrichtigungskanäle und treffen Sie Ihre Auswahl.
          4. Geben Sie einen Namen für die Benachrichtigungsrichtlinie ein und klicken Sie dann auf Richtlinie erstellen.

      REST

      Wenn Sie einen synthetischen Monitor mit der Google Cloud CLI oder der Cloud Monitoring API erstellen, übergeben Sie den Funktionsnamen an den API-Aufruf. Daher können Sie nur einen synthetischen Monitor erstellen, der eine vorhandene Cloud Run-Funktion überwacht.

      1. Achten Sie darauf, dass Sie die erforderlichen APIs aktiviert haben, dass Ihr Projekt ein Compute Engine-Standarddienstkonto enthält und dass diesem Konto die Rolle „Bearbeiter“ (roles/editor) zugewiesen wurde. Weitere Informationen finden Sie unter Vorbereitung.
      2. Konfigurieren Sie die Google Cloud CLI so, dass ein Standardprojekt mit dem Befehl gcloud config set festgelegt wird:

        gcloud config set project PROJECT_ID
        

        Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:

        • PROJECT_ID: Die Kennung des Projekts. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
      3. Cloud Run Functions der 2. Generation schreiben und bereitstellen

        So stellen Sie beispielsweise das synthetics-sdk-nodejs-Beispiel im Repository Google Cloud/synthetics-sdk-nodejs bereit:

        1. Klonen Sie das Repository und wechseln Sie zum Speicherort des Quellcodes:

          git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
          cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
          
        2. Stellen Sie die Cloud Run-Funktion mit dem Befehl gcloud functions deploy bereit:

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

          Führen Sie im Befehl gcloud functions deploy folgende Schritte aus:

          • Der Wert des Felds FUNCTION_NAME muss in der Bereitstellungsregion eindeutig sein.

          • Fügen Sie das Flag --gen2 ein und legen Sie die Bereitstellungsregion fest.

          • Legen Sie das Feld --entry-point so fest:

            • Mocha: SyntheticMochaSuite
            • Nicht Mocha: SyntheticFunction.
          • Setzen Sie das Feld --runtime auf nodejs18.

          • Fügen Sie das Flag --trigger-http ein.

          • Legen Sie das Feld --ingress-settings fest, wenn Sie nicht die Standardeinstellung verwenden möchten, die gesamten Traffic zulässt.

          Cloud Run-Funktionen erstellen und stellen dann Ihre Cloud Run-Funktion bereit. Die Ergebnisse des Google Cloud CLI-Befehls enthalten Informationen zur Funktion, einschließlich ihres vollqualifizierten Namens:

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

          Weitere Informationen zum Bereitstellen einer Funktion finden Sie unter Cloud Run-Funktion bereitstellen.

        Verwenden Sie den Befehl gcloud functions list, um die Cloud Run-Funktionen in Ihrem Google Cloud Projekt aufzulisten:

        gcloud functions list
        

        Die Antwort auf diesen Aufruf ist eine Liste mit Einträgen, wobei jeder Eintrag eine Cloud Run-Funktion auflistet:

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

        Wenn Sie den vollqualifizierten Namen einer bestimmten Cloud Run-Funktion ermitteln möchten, führen Sie den Befehl gcloud monitoring uptime describe aus.

      4. So erstellen Sie einen synthetischen Monitor:

        1. Klicken Sie auf projects.uptimeCheckConfigs.create, um die API-Referenzseite für die Methode zu öffnen.
        2. Klicken Sie auf Ausprobieren, um den APIs Explorer zu öffnen.
        3. Legen Sie die Werte für die folgenden Felder fest und führen Sie dann den Befehl aus.

          • Übergeordnetes Feld: Das Projekt, in dem der synthetische Monitor erstellt werden soll. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus. Dieses Feld hat das folgende Format:

            projects/PROJECT_ID
            
          • Geben Sie im Anfragetext Folgendes an:

            • displayName: Legen Sie den Anzeigenamen für Ihren synthetischen Monitor fest.
            • syntheticMonitor: Auf den vollständig qualifizierten Namen Ihrer Cloud Run-Funktion festgelegt.

          Bei Erfolg sieht die Antwort des API-Aufrufs in etwa so aus:

          {
          "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"
              }
              }
           }
          }
          }
          
      5. Erstellen Sie eine Benachrichtigungsrichtlinie.

        Aufgrund der Komplexität der Konfiguration von Benachrichtigungsrichtlinien empfehlen wir, in der Google Cloud Konsole die Seite Synthetische Monitore aufzurufen und die Optionen zum Erstellen einer Benachrichtigungsrichtlinie zu verwenden. Bei diesem Ansatz werden die meisten Felder der Benachrichtigungsrichtlinie automatisch ausgefüllt. Wenn Sie die Benachrichtigungsrichtlinie mit derGoogle Cloud Console erstellen möchten, klicken Sie auf der Seite Synthetische Monitore auf Richtlinie erstellen.

        Wenn Sie die Google Cloud CLI oder die Cloud Monitoring API verwenden möchten, konfigurieren Sie den Filter der Bedingung so:

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

        Mit der Bedingung werden uptime_check/check_passed-Zeitreihen überwacht, die von Ihrem synthetischen Monitor geschrieben werden. Ersetzen Sie CHECK_ID durch die Kennung des synthetischen Monitors, die in den Antwortdaten eines „create“-Befehls enthalten ist.

        Informationen zum Erstellen einer Benachrichtigungsrichtlinie finden Sie unter Benachrichtigungsrichtlinien mit der API erstellen.

      Preise

      Im Allgemeinen sind Cloud Monitoring-Systemmesswerte kostenlos, Messwerte aus externen Systemen, Agents oder Anwendungen jedoch nicht. Abrechenbare Messwerte werden entweder nach der Anzahl der aufgenommenen Byte oder der Anzahl der aufgenommenen Stichproben abgerechnet.

      Weitere Informationen zu den Preisen für Cloud Monitoring finden Sie in den folgenden Dokumenten:

      Fehlerbehebung bei synthetischen Monitoren

      Dieser Abschnitt enthält Informationen, die Ihnen bei der Fehlerbehebung bei Ihren synthetischen Monitoren helfen können.

      Fehlermeldung nach dem Aktivieren der APIs

      Sie öffnen den Erstellungsprozess für einen synthetischen Monitor und werden aufgefordert, mindestens eine API zu aktivieren. Nachdem Sie die APIs aktiviert haben, wird eine Meldung wie die folgende angezeigt:

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

      In der Fehlermeldung wird empfohlen, zu prüfen, ob die API aktiviert ist, und dann zu warten und die Aktion noch einmal zu versuchen.

      So prüfen Sie, ob die API aktiviert ist: Rufen Sie die Seite APIs und Dienste für Ihr Projekt auf:

      Rufen Sie "APIs & Dienste" auf.

      Nachdem Sie bestätigt haben, dass die API aktiviert ist, können Sie mit dem Erstellungsvorgang fortfahren. Der Zustand wird automatisch behoben, nachdem die API-Aktivierung im Backend erfolgt ist.

      Ausgehende HTTP-Anfragen werden nicht nachverfolgt

      Sie konfigurieren den synthetischen Monitor so, dass Tracedaten für ausgehende HTTP-Anfragen erfasst werden. Ihre Tracedaten enthalten nur einen Span, ähnlich wie im folgenden Screenshot:

      In Cloud Trace wird nur ein Trace angezeigt.

      Um dieses Problem zu beheben, müssen Sie Ihrem Dienstkonto die Rolle „Cloud Trace Agent“ (roles/cloudtrace.agent) zuweisen. Die Rolle „Bearbeiter“ (roles/editor) ist ebenfalls ausreichend.

      So rufen Sie die Rollen auf, die Ihrem Dienstkonto zugewiesen sind:

      1. Rufen Sie in der Google Cloud Console die Seite IAM auf:

        Rufen Sie IAM auf.

        Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM & Admin ist.

      2. Wählen Sie in der Symbolleiste der Google Cloud -Console Ihr Google Cloud -Projekt aus. Wählen Sie für App Hub-Konfigurationen das App Hub-Hostprojekt oder das Verwaltungsprojekt des für Apps aktivierten Ordners aus.
      3. Wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
      4. Wenn das von Ihrem synthetischen Monitor verwendete Dienstkonto nicht aufgeführt ist oder ihm keine Rolle mit den Berechtigungen der Rolle „Cloud Trace Agent“ (roles/cloudtrace.agent) zugewiesen wurde, weisen Sie Ihrem Dienstkonto diese Rolle zu.

        Wenn Sie den Namen Ihres Dienstkontos nicht kennen, wählen Sie im Navigationsmenü Dienstkonten aus.

      Status „In Bearbeitung“

      Auf der Seite Synthetisches Monitoring wird ein synthetischer Monitor mit dem Status In progress aufgeführt. Der Status In progress bedeutet, dass der synthetische Monitor vor Kurzem erstellt wurde und keine Daten zum Anzeigen vorhanden sind oder dass die Bereitstellung der Funktion fehlgeschlagen ist.

      So ermitteln Sie, ob die Bereitstellung der Funktion fehlgeschlagen ist:

      • Achten Sie darauf, dass der Name Ihrer Cloud Run-Funktion keinen Unterstrich enthält. Wenn ein Unterstrich vorhanden ist, entfernen Sie ihn und stellen Sie die Cloud Run-Funktion noch einmal bereit.

      • Öffnen Sie die Seite Details zum synthetischen Monitor für den synthetischen Monitor.

        Wenn die folgende Meldung angezeigt wird, löschen Sie den synthetischen Monitor.

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

        Die Fehlermeldung weist darauf hin, dass die Funktion gelöscht wurde und der synthetische Monitor sie daher nicht ausführen kann.

      • Öffnen Sie die Seite „Cloud Run-Funktionen“ für die Funktion. Wenn Sie diese Seite über die Seite Details zum synthetischen Monitor aufrufen möchten, klicken Sie auf Code und dann auf den Funktionsnamen.

        Wenn eine Meldung wie die folgende angezeigt wird, konnte die Funktion nicht bereitgestellt werden.

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

        Um diesen Fehler zu beheben, überprüfen Sie den Funktionscode und korrigieren Sie die Fehler, die verhindern, dass die Funktion erstellt oder bereitgestellt wird.

      Wenn Sie einen synthetischen Monitor erstellen, kann es einige Minuten dauern, bis die Funktion bereitgestellt und ausgeführt wird.

      Warnstatus

      Unter Synthetisches Monitoring wird ein synthetisches Monitoring mit dem Status Warning aufgeführt. Der Status Warning bedeutet, dass die Ausführungsergebnisse inkonsistent sind. Das kann auf ein Designproblem mit dem Test oder auf ein inkonsistentes Verhalten des zu testenden Elements hindeuten.

      Status „Nicht bestanden“

      Unter Synthetische Monitore wird ein synthetischer Monitor mit dem Status Failing aufgeführt. Weitere Informationen zum Grund für den Fehler finden Sie im letzten Ausführungsverlauf.

      • Wenn die Fehlermeldung Request failed with status code 429 angezeigt wird, hat das Ziel der HTTP-Anfrage den Befehl abgelehnt. Um diesen Fehler zu beheben, müssen Sie das Ziel Ihres synthetischen Monitors ändern.

        Der Endpunkt https://www.google.com lehnt Anfragen von synthetischen Monitoren ab.

      • Wenn bei dem Fehler eine Ausführungszeit von 0ms zurückgegeben wird, kann es sein, dass der Cloud Run-Funktion der Arbeitsspeicher ausgeht. Um diesen Fehler zu beheben, bearbeiten Sie Ihre Cloud Run-Funktion, erhöhen Sie den Arbeitsspeicher auf mindestens 2 GiB und legen Sie das CPU-Feld auf 1 fest.

      Fehler beim Löschen eines synthetischen Monitors

      Sie verwenden die Cloud Monitoring API, um einen synthetischen Monitor zu löschen, aber der API-Aufruf schlägt mit einer Antwort ähnlich der folgenden fehl:

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

      Um den Fehler zu beheben, löschen Sie die Benachrichtigungsrichtlinien, die die Ergebnisse des synthetischen Monitors überwachen, und löschen Sie dann den synthetischen Monitor.

      Nächste Schritte