Synthetischen Monitor erstellen

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

Synthetisches Monitoring

Ein synthetischer Monitor führt regelmäßig einen einzelnen Zweck aus Cloud Functions-Funktion der 2. Generation, die auf dem Cloud Run: Wenn Sie den synthetischen Monitor erstellen, definieren Sie die Cloud Functions-Funktion, die in Node.js geschrieben werden muss, und die Ausführungshäufigkeit. Sie können Ihre Cloud Functions-Funktion beispielsweise so konfigurieren, dass mit einer Webseite mithilfe von Puppeteer. Sie können auch konfigurieren Sie Ihre Cloud Functions-Funktion für die Interaktion mit einer API mithilfe der Methode Axios-Modul. Vielleicht möchten Sie auch um Ressourcen zu testen, die sich in einem VPC-Netzwerk befinden.

Um Ihre Cloud Functions-Funktion zu erstellen, können Sie einen Inline-Editor verwenden oder eine ZIP-Datei hochladen. Wenn Sie Dann können Sie mit einem bereitgestellten Basisgerüst beginnen. Nachdem Sie einen synthetischen Monitor erstellt haben, verwendet Cloud Monitoring ein Planungssystem die regelmäßige Ausführung Ihrer Cloud Functions-Funktion plant. Während Sie die Region angeben, in der sich Ihre Cloud Functions-Funktion befindet, die Befehle, kann die Ausführung in jeder Region erfolgen, die vom Verfügbarkeitsdiagnose-Server. Weitere Informationen finden Sie unter Listen Sie die IP-Adressen des Verfügbarkeitsdiagnose-Servers auf.

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

  • Wenn Sie einen synthetischen Monitor in der Google Cloud Console erstellen, wird standardmäßig eine Benachrichtigungsrichtlinie erstellt. Sie stellen die Benachrichtigungskanäle. Die standardmäßige Benachrichtigungsrichtlinie ist so konfiguriert, werden Sie bei zwei oder mehr aufeinanderfolgenden Testfehlern benachrichtigt.

  • Wenn Sie einen synthetischen Monitor mit der Cloud Monitoring API erstellen, müssen Sie die Benachrichtigungsrichtlinie erstellen, um uptime_check/check_passed-Messwerttyp für den Cloud Run-Ressource, die die Cloud Functions-Funktion ist auf dem Laufenden zu bleiben.

Hinweise zur Ausführungshäufigkeit

Sie konfigurieren, wie oft Ihre Cloud Functions-Funktion ausgeführt wird. Bis die Häufigkeit der Ausführungen zu bestimmen, Service Level Objective (SLO) für Ihren Dienst. Um potenzielle SLO-Verstöße zu erkennen, müssen Sie die Tests häufig ausführen. Das SLO für Ihren Dienst ist jedoch nicht der einzige Aspekt. Sie müssen auch berücksichtigen, wie sich die Ausführungsrate Ihren Service und Ihre Kosten. Jede Ausführung belastet Ihren Dienst, Je häufiger Sie eine Cloud Functions-Funktion ausführen, desto höher ist die Auslastung Ihres Dienstes. Das Standardausführungsintervall für Verfügbarkeitsdiagnosen beträgt eine Minute.

Die Ausführungshäufigkeit bestimmt auch, wie schnell Sie benachrichtigt werden, wenn wenn der Test fehlschlägt. Monitoring öffnet einen Vorfall und sendet eine Benachrichtigung nach dem zweiten Fehlschlagen eines Tests in Folge. Beispiel: Bei einer Ausführungshäufigkeit von 5 Minuten kann es bis zu 10 Minuten sind zwei Tests fehlgeschlagen. Sie werden nach dem zweiten Fehlschlagen des Tests benachrichtigt.

Beispielcode für Cloud Function

Vorlagen und Beispiele finden Sie unter Beispiele für synthetisches Monitoring. Sie können diese Beispiele als Ausgangspunkt für Ihre Cloud Functions-Funktion. Wenn Sie erfahrenen Entwicklers mit Gemini Code für synthetisches Monitoring generieren und die Entwicklungszeit zu reduzieren. Die Verwendung von Gemini zum Generieren von Code befindet sich in der öffentlichen Vorschau.

Die allgemeine Vorlage, die Sie auswählen können, wenn erstellen Sie mit der Google Cloud Console einen synthetischen Monitor, ist so konfiguriert, dass Trace- und Protokolldaten für ausgehende HTTP-Anfragen erfasst werden. Die Lösung nutzt die OpenTelemetry-Modul auto-instrumentation-node und dem Winston-Logger. Aufgrund der Abhängigkeit von Open-Source-Produkten sind Änderungen Struktur von Trace- und Logdaten. Der erfasste Trace und Protokolldaten sollten nur zur Fehlerbehebung verwendet werden.

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

Cloud Function-Konfiguration

Beim Konfigurieren der Cloud Functions-Funktion müssen Sie entweder Laufzeit-, Build-, Verbindungs- und Sicherheitseinstellungen oder übernehmen Sie die Standardeinstellungen Einstellungen:

  • Der Standardwert für den zugewiesenen Arbeitsspeicher reicht möglicherweise nicht aus. Mi. empfehlen, dieses Feld auf mindestens 2 GiB festzulegen.

  • Der Standardwert für die Einstellungen für die eingehende Datenübertragung Ihres Cloud Function lässt den gesamten Traffic zu. Sie können diese Einstellung oder eine restriktivere Einstellung auswählen.

    Wenn Sie den gesamten Traffic zulassen, ist die erste Phase der Validierung die von Cloud Functions-Funktionen auf Netzwerkebene ausgeführt werden, Karten/Tickets enthält. In der zweiten Phase der Validierung wird bestimmt, ob der Aufrufer hat die Berechtigung zum Ausführen der Cloud Functions-Funktion erhalten. Die Autorisierung hängt von der IAM-Rolle (Identity and Access Management) Cloud Monitoring erhält standardmäßig die Berechtigung zum Ausführen der Cloud Functions-Funktion. Informationen zum Anzeigen und Ändern der Einstellungen für die Datenübertragung eingehender Daten finden Sie unter Einstellungen für eingehenden Traffic.

Cloud Function-Einschränkungen

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

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

  • Es werden nur HTTP-Funktionen unterstützt. Wenn Sie die Methode Google Cloud Console zum Erstellen des synthetischen Monitors. Dann erhalten Sie Standardfunktion, die eine URL abfragt. Die Quelle für die Standardfunktion, die geändert werden kann, in der generic-synthetic-nodejs Git-Repository.

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

  • Wenn Sie die API verwenden, muss der Bereitstellungsbefehl angeben, dass die Cloud Functions-Funktion gehört zur 2. Generation. Wenn Sie die Methode Google Cloud Console – die Bereitstellung übernimmt Sie dann für Sie. Weitere Informationen Weitere Informationen finden Sie unter Cloud Functions-Funktion bereitstellen.

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

Von synthetischen Monitorings erfasste Daten

In diesem Abschnitt werden die Daten beschrieben, die für Ihren synthetischen Monitor erfasst werden. Informationen zum Aufrufen von Ausführungsergebnissen finden Sie unter Ergebnisse des synthetischen Monitorings untersuchen

Ausführungsverlauf

Für jeden synthetischen Monitor wird ein Verlauf der Ausführungsergebnisse erfasst. Diese Daten umfassen Folgendes:

  • Eine Zeitreihe, die Erfolg oder Misserfolg von Ausführungen im Zeitverlauf erfasst.

  • Eine Zeitreihe, die die Ausführungsdauer des Codes aufzeichnet. Die Ausführungszeit der Funktion nicht aufgezeichnet. Die Latenzdaten werden geschrieben, als uptime_check/request_latency-Zeitachse für die Cloud Run-Ressource, die die Cloud Functions-Funktion ist auf dem Laufenden zu bleiben. Ein Diagramm mit diesen Daten finden Sie auf der Seite Details zum synthetischen Monitor:

  • Logs mit Informationen zu Ausführungen synthetischer Monitore, wie z. B. Informationen über die Test- und Fehlerdetails. Welche Logs verfügbar sind, hängt davon ab, Cloud Functions-Funktion. Wenn Sie beispielsweise die Vorlage Mocha verwenden, dann gibt der Logs enthalten Informationen darüber, ob der Test bestanden wurde oder nicht. Dauer Der Stacktrace enthält, sofern vorhanden, die Codezeile, Fehlertypen und Fehlermeldungen.

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

Cloud Function-Messwerte und -Logs

Messwerte und Logs für Ihre Cloud Functions-Funktion Diese Daten, die sich die von Cloud Functions erfasst werden, enthält Informationen zur Anzahl der Ausführungen pro Sekunde, der Ausführungszeit und der Ihre Funktion.

Anfragelatenz

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

Zum Erfassen von Trace-, Log- und Latenzdaten für die ausgehenden HTTP-Anfragen von Ihrem synthetischen Monitor, müssen Sie den allgemeine Vorlage. Weitere Informationen finden Sie unter Beispiele für synthetisches Monitoring.

Hinweise

  1. So erhalten Sie die Berechtigungen, die Sie zum Aufrufen und Ändern synthetischer Monitore mithilfe der Google Cloud Console benötigen: bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für Ihr Projekt:

    Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

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

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

    Aktivieren Sie die APIs

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

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

    Zu Dienstkonten

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis mit der Zwischenüberschrift IAM und Verwaltung.

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

  4. Prüfen Sie, ob das Compute Engine-Standarddienstkonto oder das Dienstkonto, das Sie erstellt haben, wurde die Rolle „Bearbeiter“ (roles/editor) gewährt.

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

    1. Öffnen Sie in der Google Cloud Console die Seite IAM:

      Rufen Sie IAM auf.

      Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis mit der Zwischenüberschrift IAM und Verwaltung.

    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 Es wurde keine Rolle gewährt, die die Berechtigungen der Rolle enthält des Cloud Trace-Agents (roles/cloudtrace.agent) und gewähren Sie diese Rolle dann Ihr Dienstkonto.
  5. Konfigurieren Sie die Benachrichtigungskanäle, die Sie für den Empfang von Benachrichtigungen verwenden möchten Benachrichtigungen. Wir empfehlen, mehrere Arten von Benachrichtigungen zu erstellen Kanäle. Weitere Informationen finden Sie unter Benachrichtigungskanäle erstellen und verwalten und Benachrichtigungskanäle nach API erstellen und verwalten

Synthetischen Monitor erstellen

Console

Wenn Sie einen synthetischen Monitor mit der Google Cloud Console erstellen, wird ein neuer Cloud Functions-Funktion (2. Generation) bereitgestellt und der Monitor für diese Cloud Functions-Funktion erstellt. Sie können keinen synthetischen Monitor erstellen, der ein vorhandene Cloud Functions-Funktion.

  1. Stellen Sie sicher, dass Sie die Option erforderlichen APIs, die Ihr Projekt enthält Compute Engine-Standarddienstkonto wurde die Rolle "Bearbeiter" (roles/editor) zugewiesen. Weitere Informationen Siehe Vorbereitung.
  2. Wechseln Sie in der Google Cloud Console zur Seite Synthetisches Monitoring:

    Zur Seite 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 Synthetischen Monitor erstellen aus.
  4. Wählen Sie die Vorlage für Ihre Cloud Functions-Funktion aus:

    • Benutzerdefinierter synthetischer Monitor: Verwenden Sie diese Vorlage, wenn Sie Daten erheben möchten. Protokoll- oder Trace-Daten für ausgehende HTTP-Anfragen.

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

    • Broken link Checker: Verwenden Sie diese Vorlage, um einen URI zu testen. und eine konfigurierbare Anzahl von Links unter diesem URI. Weitere Informationen zu den Feldern für diese Prüfung, siehe Erstellen Sie eine Prüfung für fehlerhafte Links.

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

  6. Optional: Aktualisieren Sie die Werte für Antwortzeitlimit, Prüfungshäufigkeit und benutzerdefinierte Labels hinzufügen.

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

  8. Führen Sie im Dialogfeld „Cloud Functions-Funktion“ die folgenden Schritte aus:

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

    2. Gehen Sie im Bereich Laufzeit, Build, Verbindungen und Sicherheitseinstellungen wie folgt vor: Gehen Sie so vor:

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

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

    3. Bearbeiten Sie den generierten Code oder schreiben oder laden Sie Code für Ihr Cloud Functions-Funktion:

      • Um generierten Code zu bearbeiten, geben Sie Ihren eigenen Code ein oder laden Sie den Standardbeispielfunktion, wählen Sie Inline Editor (Inline-Editor) aus. Die abhängige Stichprobenfunktion, für die Vorlage, die Sie zuvor ausgewählt haben, 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 Geben Sie außerdem einen Cloud Storage-Bucket für die ZIP-Datei an. Wenn Sie keinen entsprechenden Cloud Storage-Bucket haben, erstellen Sie einen.

      • Wählen Sie zum Laden einer ZIP-Datei aus Cloud Storage Erstellen Sie eine ZIP-Datei aus Cloud Storage, wählen Sie den Storage-Bucket aus und die zu ladende ZIP-Datei aus.

        Sie können eine Cloud Functions-Funktion auch mit dem Cloud Functions-Seiten in der Google Cloud Console So erstellen Sie ein synthetischer Monitor, der eine Kopie dieser Cloud Functions-Funktion, rufen Sie den Tab Quelle auf und Klicken Sie auf ZIP-Datei herunterladen. Anschließend können Sie die ZIP-Datei hochladen.

    4. Klicken Sie auf Funktion anwenden.

  9. Konfigurieren Sie die Benachrichtigungsrichtlinie:

    1. Optional: Name der Benachrichtigungsrichtlinie und Fehlerdauer aktualisieren bevor Benachrichtigungen gesendet werden.

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

  10. Klicken Sie auf Erstellen.

    Die von Ihnen definierte Cloud Functions-Funktion wird als und der synthetische Monitor erstellt wird.

gcloud

Wenn Sie einen synthetischen Monitor mithilfe der der Google Cloud CLI oder der Cloud Monitoring API übergeben, übergeben Sie Funktionsname zum API-Aufruf hinzu. Daher können Sie nur einen synthetischen Monitor erstellen, zum Überwachen einer vorhandenen Cloud Functions-Funktion.

  1. Stellen Sie sicher, dass Sie die Option erforderlichen APIs, die Ihr Projekt enthält Compute Engine-Standarddienstkonto wurde die Rolle "Bearbeiter" (roles/editor) zugewiesen. Weitere Informationen Siehe Vorbereitung.
  2. 2. Generation schreiben und bereitstellen Cloud Functions-Funktion.

    Um beispielsweise das synthetics-sdk-nodejs-Beispiel in der Google Cloud/synthetics-sdk-nodejs-Repository, Gehen Sie so vor:

    1. Klonen Sie das Repository und gehen 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 Functions-Funktion mithilfe der gcloud functions deploy-Befehl:

      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 die folgenden Schritte aus:

      • Achten Sie darauf, dass der Wert des Felds FUNCTION_NAME innerhalb der Bereitstellungsregion eindeutig ist.

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

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

        • Mokka: SyntheticMochaSuite
        • Kein Mokka: 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 den gesamten Traffic zulässt.

      Cloud Functions erstellt Ihre Cloud Functions-Funktion und stellt sie dann bereit. Die Ergebnisse des Google Cloud CLI-Befehls enthalten Informationen zum -Funktion einschließlich ihres voll qualifizierten Namens:

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

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

    Verwenden Sie zum Auflisten der Cloud Functions-Funktionen in Ihrem Google Cloud-Projekt die Methode gcloud functions list-Befehl:

    gcloud functions list
    

    Die Antwort auf diesen Aufruf ist ein Listeneintrag. Jeder Eintrag enthält eine Cloud Functions-Funktion:

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

    So finden Sie den voll qualifizierten Namen für eine bestimmte Cloud Functions-Funktion: Führen Sie den Befehl gcloud monitoring uptime describe aus.

  3. Führen Sie den Befehl gcloud monitoring uptime create-Befehl:

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

    Führen Sie die folgenden Schritte aus, bevor Sie den vorherigen Befehl ausführen:

    • Ersetzen Sie DISPLAY_NAME durch den Namen des synthetischen Monitors.
    • Ersetzen Sie TARGET durch den voll qualifizierten Namen Ihres Cloud Functions-Funktion.
  4. Erstellen Sie eine Benachrichtigungsrichtlinie.

    Aufgrund der Komplexität der Benachrichtigungsrichtlinie sollten Sie sich für synthetische Monitore Seite in der Google Cloud Console und verwenden Sie die Optionen zum Erstellen eines Benachrichtigungsrichtlinie Bei diesem Ansatz sind die meisten Felder für Benachrichtigungsrichtlinien automatisch ausgefüllt. So erstellen Sie die Benachrichtigungsrichtlinie mithilfe der Methode Google Cloud Console auf Richtlinie erstellen Seite Synthetisches Monitoring

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

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

    Die Bedingung überwacht uptime_check/check_passed Zeitachsen, die geschrieben werden von Ihrem synthetischen Monitor aus. Ersetzen Sie CHECK_ID durch den Kennung des synthetischen Monitors, die in den Antwortdaten eines create verwenden.

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

API

Wenn Sie einen synthetischen Monitor mithilfe der der Google Cloud CLI oder der Cloud Monitoring API übergeben, übergeben Sie Funktionsname zum API-Aufruf hinzu. Daher können Sie nur einen synthetischen Monitor erstellen, zum Überwachen einer vorhandenen Cloud Functions-Funktion.

  1. Stellen Sie sicher, dass Sie die Option erforderlichen APIs, die Ihr Projekt enthält Compute Engine-Standarddienstkonto wurde die Rolle "Bearbeiter" (roles/editor) zugewiesen. Weitere Informationen Siehe Vorbereitung.
  2. 2. Generation schreiben und bereitstellen Cloud Functions-Funktion.

    Um beispielsweise das synthetics-sdk-nodejs-Beispiel in der Google Cloud/synthetics-sdk-nodejs-Repository, Gehen Sie so vor:

    1. Klonen Sie das Repository und gehen 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 Functions-Funktion mithilfe der gcloud functions deploy-Befehl:

      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 die folgenden Schritte aus:

      • Achten Sie darauf, dass der Wert des Felds FUNCTION_NAME innerhalb der Bereitstellungsregion eindeutig ist.

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

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

        • Mokka: SyntheticMochaSuite
        • Kein Mokka: 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 den gesamten Traffic zulässt.

      Cloud Functions erstellt Ihre Cloud Functions-Funktion und stellt sie dann bereit. Die Ergebnisse des Google Cloud CLI-Befehls enthalten Informationen zum -Funktion einschließlich ihres voll qualifizierten Namens:

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

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

    Verwenden Sie zum Auflisten der Cloud Functions-Funktionen in Ihrem Google Cloud-Projekt die Methode gcloud functions list-Befehl:

    gcloud functions list
    

    Die Antwort auf diesen Aufruf ist ein Listeneintrag. Jeder Eintrag enthält eine Cloud Functions-Funktion:

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

    So finden Sie den voll qualifizierten Namen für eine bestimmte Cloud Functions-Funktion: Führen Sie den Befehl gcloud monitoring uptime describe aus.

  3. 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 Testen, um APIs Explorer zu öffnen.
    3. Legen Sie die folgenden Felder fest und führen Sie den Befehl aus.

      • Übergeordnetes Feld: projects/PROJECT_ID.
      • Geben Sie im Anfragetext Folgendes an:

        • displayName: Geben Sie hier den Anzeigenamen für den synthetischen Monitor an.
        • syntheticMonitor: Geben Sie hier den voll qualifizierten Namen Ihres Cloud Functions-Funktion.

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

    Aufgrund der Komplexität der Benachrichtigungsrichtlinie sollten Sie sich für synthetische Monitore Seite in der Google Cloud Console und verwenden Sie die Optionen zum Erstellen eines Benachrichtigungsrichtlinie Bei diesem Ansatz sind die meisten Felder für Benachrichtigungsrichtlinien automatisch ausgefüllt. So erstellen Sie die Benachrichtigungsrichtlinie mithilfe der Methode Google Cloud Console auf Richtlinie erstellen Seite Synthetisches Monitoring

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

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

    Die Bedingung überwacht uptime_check/check_passed Zeitachsen, die geschrieben werden von Ihrem synthetischen Monitor aus. Ersetzen Sie CHECK_ID durch den Kennung des synthetischen Monitors, die in den Antwortdaten eines create verwenden.

    Informationen zum Erstellen einer Benachrichtigungsrichtlinie finden Sie unter Benachrichtigungsrichtlinien mithilfe 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 zur Überwachung dieser Prüfung: Gehen Sie so vor:

  1. Stellen Sie sicher, dass Sie die Option erforderlichen APIs, die Ihr Projekt enthält Compute Engine-Standarddienstkonto wurde die Rolle "Bearbeiter" (roles/editor) zugewiesen. Weitere Informationen Siehe Vorbereitung.

  2. Bearbeiten Sie die Terraform-Konfigurationsdatei und fügen Sie einen google_storage_bucket-Ressource und dann und wenden Sie die Änderungen an.

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

    resource "google_storage_bucket" "gcf_source" {
       name = "gcf-v2-source-9948673986912-us"
       location = "US"
       uniform_bucket_level_access = true
    }
    
  3. Bearbeiten Sie die Terraform-Konfigurationsdatei und fügen Sie einen google_storage_bucket_object und wenden Sie Ihre Änderungen an.

    Die Ressource gibt den Namen des Objekts in Ihrem Bucket an, und dem Speicherort der ZIP-Datei auf Ihrem lokalen System. Wenn Sie beispielsweise den folgenden Code anwenden, wird eine Datei mit dem Namen example-function.zip wird Ihrem Storage-Bucket 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"
    }
    
  4. Bearbeiten Sie die Terraform-Konfigurationsdatei und fügen Sie einen google_cloudfunctions2_function und wenden Sie Ihre Änderungen an.

    Achten Sie darauf, dass Ihre google_cloudfunctions2_function-Ressource Folgendes angibt: eine Node.js-Laufzeit und den Einstiegspunkt für synthetisches Monitoring. Wenn Sie beispielsweise den folgenden Code anwenden, wird eine Funktion mit dem Namen sm-central1 wurde 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
       }
    }
    
  5. Bearbeiten Sie die Terraform-Konfigurationsdatei, um einen synthetischen Monitor zu erstellen und füge eine google_monitoring_uptime_check_config hinzu und wenden Sie 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
          }
       }
    }
    
  6. Optional: Erstellen Sie einen Benachrichtigungskanal und eine Benachrichtigungsrichtlinie.

    In den folgenden Schritten wird die Benachrichtigung in der Google Cloud Console erstellt Kanal und Benachrichtigungsrichtlinie. Dieser Ansatz sorgt dafür, dass die Benachrichtigungsrichtlinie überwacht nur die von Ihrem synthetischen Monitor generierten Daten.

    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. Wähle den Kanaltyp aus, den du hinzufügen möchtest, und klicke auf Hinzufügen. und füllen Sie das Dialogfeld aus.
    2. So erstellen Sie eine Benachrichtigungsrichtlinie:

      1. Wechseln Sie in der Google Cloud Console zur Seite Synthetisches Monitoring:

        Zur Seite Synthetisches Monitoring

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

      2. Suchen Sie Ihren synthetischen Monitor, wählen Sie Mehr aus. und wählen Sie dann Benachrichtigungsrichtlinie hinzufügen aus.
      3. Gehen Sie im Dialogfeld zum Abschnitt Benachrichtigungen und Name. Maximieren Sie Benachrichtigungskanäle und treffen Sie Ihre Auswahl.
      4. Benennen Sie die Benachrichtigungsrichtlinie und klicken Sie dann auf Richtlinie erstellen.

Preise

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

Weitere Informationen zu den Cloud Monitoring-Preisen finden Sie in den folgenden Dokumenten:

Fehler beim synthetischen Monitoring beheben

Dieser Abschnitt enthält Informationen zur Fehlerbehebung Ihren synthetischen Monitoren.

Fehlermeldung nach dem Aktivieren der APIs

Sie öffnen den Erstellungsablauf für einen synthetischen Monitor und werden aufgefordert, die Funktion zu aktivieren mindestens eine API. Nachdem Sie die APIs aktiviert haben, wird eine Meldung wie die folgende angezeigt wird 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 überprüfen, ob die API aktiviert ist, und dann weist darauf hin, dass Sie warten und die Aktion wiederholen.

Wenn Sie überprüfen möchten, ob die API aktiviert ist, gehen Sie zu APIs und Dienste für Ihrem Projekt:

Rufen Sie "APIs & Dienste" auf.

Nachdem Sie sich vergewissert haben, dass die API aktiviert ist, können Sie mit der Ablauf zu erstellen. Die Bedingung löst sich automatisch nach der API auf Die Aktivierung wird über das Back-End weitergegeben.

Ausgehende HTTP-Anfragen werden nicht verfolgt

Sie konfigurieren den synthetischen Monitor so, dass Trace-Daten für die Ausgabe erfasst werden. HTTP-Anfragen Ihre Trace-Daten zeigen nur einen Span, ähnlich dem folgenden Screenshot:

Cloud Trace zeigt nur einen Trace an.

Prüfen Sie, ob Ihr Dienstkonto Ihnen wurde die Rolle des Cloud Trace-Agents (roles/cloudtrace.agent) gewährt. Die Rolle „Bearbeiter“ (roles/editor) ist ebenfalls ausreichend.

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

  1. Öffnen Sie in der Google Cloud Console die Seite IAM:

    Rufen Sie IAM auf.

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis mit der Zwischenüberschrift IAM und Verwaltung.

  2. Wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
  3. Wenn das von Ihrem synthetischen Monitor verwendete Dienstkonto nicht aufgeführt ist hat keine Rolle mit den Berechtigungen der Rolle Cloud Trace-Agent (roles/cloudtrace.agent) und weisen Sie diese Rolle dann Ihrem Dienstkonto.

    Wenn Sie den Namen Ihres Dienstkontos nicht kennen, die Option Dienstkonten aus.

Status „In Bearbeitung“

Auf der Seite Synthetisches Monitoring wird ein synthetischer Monitor aufgeführt. mit dem Status In progress. Der Status In progress bedeutet, dass weil der synthetische Monitor kürzlich erstellt wurde und keine Daten vorhanden sind. oder die Funktion nicht bereitgestellt werden konnte.

Um festzustellen, ob die Funktion nicht bereitgestellt werden konnte, versuchen Sie Folgendes:

  • Achten Sie darauf, dass der Name der Cloud Functions-Funktion nicht einen Unterstrich enthalten. Wenn ein Unterstrich vorhanden ist, entfernen Sie ihn. und stellen die Cloud Functions-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 gibt an, dass die Funktion gelöscht wurde und daher der synthetische Monitor die Funktion nicht ausführen kann.

  • Öffnen Sie die Cloud Functions-Seite für die Funktion. So öffnen Sie diese Seite: Klicken Sie auf der Seite Details zum synthetischen Monitor auf Code und dann auf auf den Funktionsnamen.

    Wenn eine Meldung wie die folgende angezeigt wird, ist die Funktion fehlgeschlagen die Sie bereitstellen können.

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

    Überprüfen Sie den Funktionscode und korrigieren Sie die Fehler, um diesen Fehler zu beheben. durch die die Funktion nicht erstellt oder bereitgestellt wird.

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

Warnstatus

Das synthetische Monitoring listet einen synthetischen Monitor auf. mit dem Status Warning. Der Status Warning bedeutet, dass die Ausführung Ergebnisse sind inkonsistent. Dies könnte auf ein Designproblem mit Ihrem Test oder es kann darauf hindeuten, dass das, was getestet wird, ein inkonsistentes Verhalten aufweist.

Status „Nicht bestanden“

Das synthetische Monitoring listet einen synthetischen Monitor mit dem Status Failing Um mehr über die Fehlerursache zu erfahren, Aufrufen des letzten Ausführungsverlaufs.

  • Wenn die Fehlermeldung Request failed with status code 429 angezeigt wird, wurde der Befehl vom Ziel der HTTP-Anfrage abgelehnt. Lösung fehlgeschlagen ist, müssen Sie das Ziel des synthetischen Monitors ändern.

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

  • Wenn der Fehler die Ausführungszeit 0ms zurückgibt, ist der Die Cloud Functions-Funktion hat möglicherweise nicht mehr genügend Arbeitsspeicher. Lösung Fehler beheben, die Cloud Functions-Funktion bearbeiten und dann den Arbeitsspeicher erhöhen auf mindestens 2 GiB und legen Sie das CPU-Feld auf 1 fest.

Das Löschen schlägt bei einem synthetischen Monitor fehl

Sie verwenden die Cloud Monitoring API, um einen synthetischen Monitor zu löschen, aber die API mit einer Antwort wie der folgenden fehlschlägt:

{
  "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 Benachrichtigungsrichtlinien, die Ergebnisse des synthetischen Monitors überwachen und dann den synthetischen Monitor löschen.

Nächste Schritte