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 Script aus und zeichnet die Testergebnisse und zusätzliche Daten wie die Latenz auf. So werden Sie benachrichtigt, wenn ein Test fehlschlägt, können Sie eine Benachrichtigungsrichtlinie konfigurieren. um die Testergebnisse zu überwachen.
Synthetische Monitore
Ein synthetischer Monitor führt regelmäßig einen einzelnen Zweck aus Cloud Run-Funktion der 2. Generation, die auf der Cloud Run: Beim Erstellen des synthetischen Monitors 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 mit Puppeteer so konfigurieren, dass sie mit einer Webseite interagiert. Sie können auch konfigurieren Sie Ihre Cloud Run-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 die Cloud Run-Funktion zu erstellen, können Sie einen Inline-Editor verwenden oder eine ZIP-Datei hochladen. Wenn Sie den Inline-Editor verwenden, können Sie mit einem bereitgestellten Skelett beginnen. Nachdem Sie einen synthetischen Monitor erstellt haben, verwendet Cloud Monitoring ein Planungssystem, mit dem die Cloud Run-Funktion regelmäßig ausgeführt wird. Während Sie die Region angeben, in der sich Ihre Cloud Run-Funktion befindet, und 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 mit der Google Cloud Console einen synthetischen Monitor 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 Run-Funktion ist auf dem Laufenden zu bleiben.
Hinweise zur Ausführungshäufigkeit
Sie konfigurieren, wie oft die Cloud Run-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 die Cloud Run-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 Run-Funktion
Vorlagen und Beispiele finden Sie unter Beispiele für synthetisches Monitoring. Sie können diese Beispiele als Ausgangspunkt für Ihre Cloud Run-Funktion verwenden. Wenn Sie ein erfahrener Entwickler sind, 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 Run-Funktionskonfiguration
Beim Konfigurieren der Cloud Run-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. Wir empfehlen, in diesem Feld mindestens 2 GiB festzulegen.
Der Standardwert für die Einstellungen für die eingehende Datenübertragung Ihres Cloud Run-Funktion besteht darin, den gesamten Traffic zuzulassen. Sie können diese Einstellung oder eine restriktievere Einstellung verwenden.
Wenn Sie den gesamten Traffic zulassen, ist die erste Phase der Validierung die von Cloud Run-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 Run-Funktion erhalten. Die Autorisierung hängt von der IAM-Rolle (Identity and Access Management) Standardmäßig wird Cloud Monitoring die Berechtigung zum Ausführen Ihrer Cloud Run-Funktion erteilt. Informationen zum Anzeigen und Ändern der Einstellungen für die Datenübertragung eingehender Daten finden Sie unter Einstellungen für eingehenden Traffic.
Funktionseinschränkungen für Cloud Run
Der Name Ihrer Cloud Run-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 den synthetischen Monitor in der Google Cloud Console erstellen, wird eine Standardfunktion bereitgestellt, 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 Run-Funktion der 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 Run-Funktion bereitstellen.
Die Laufzeitumgebung ist auf Node.js beschränkt. Weitere Informationen Siehe Knoten. Folgende 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 synthetischer Monitore analysieren.
Ausführungsverlauf
Für jeden synthetischen Monitor wird ein Verlauf der Ausführungsergebnisse erfasst. Diese Daten umfassen Folgendes:
Eine Zeitreihe, in der der Erfolg oder Misserfolg von Ausführungen im Zeitverlauf erfasst wird.
Eine Zeitreihe, in der die Ausführungsdauer des Codes erfasst wird. Die Ausführungszeit der Funktion 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 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 Run-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 Run-Funktionsmesswerte und -Logs
Messwerte und Logs für Ihre Cloud Run-Funktion. Diese Daten, die sich die von Cloud Run-Funktionen 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, die vom synthetischen Monitor gesendet wird, werden automatisch von Cloud Trace erfasst und gespeichert.
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
-
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:
-
Monitoring-Bearbeiter (
roles/monitoring.editor
) -
Cloud Functions Developer (
roles/cloudfunctions.developer
)
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.
-
Monitoring-Bearbeiter (
-
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.
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:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM und Verwaltung.
Wenn das Compute Engine-Standarddienstkonto nicht vorhanden ist, klicken Sie auf Dienstkonto erstellen und schließen Sie das Dialogfeld ab.
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:
-
Ö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 aus, dessen Zwischenüberschrift IAM und Verwaltung.
- Wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
- 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.
-
- 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 eine neue Cloud Run-Funktion (2. Generation) bereitgestellt und der Monitor für diese Cloud Run-Funktion erstellt. Sie können keinen synthetischen Monitor erstellen, der eine vorhandene Cloud Run-Funktion überwacht.
- 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 Vorab. -
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.
- Wählen Sie Synthetischen Monitor erstellen aus.
Wählen Sie die Vorlage für die Cloud Run-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.
Geben Sie einen Namen für den Monitor ein.
Optional: Aktualisieren Sie die Werte für Antwortzeitlimit, Prüfungshäufigkeit und benutzerdefinierte Labels hinzufügen.
Führen Sie einen der folgenden Schritte aus:
Wenn Sie in diesem Projekt Zugriff auf Gemini Code Assist haben und Hilfe beim Schreiben Ihres Codes benötigen, klicken Sie auf Hilfe beim Coden. Diese Funktion befindet sich in der öffentlichen Vorschau. Informationen zu Aufforderungen finden Sie unter Prompts für synthetisches Monitoring schreiben
Wenn Sie mit dem Code zufrieden sind, klicken Sie auf In Cloud Functions-Funktion einfügen:
Klicken Sie auf Funktion erstellen.
Führen Sie im Dialogfeld der Cloud Run-Funktion die folgenden Schritte aus:
Geben Sie einen Anzeigenamen ein und wählen Sie eine Region aus. Namen müssen innerhalb eines Region
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.
Bearbeiten Sie den generierten Code oder schreiben oder laden Sie Code für Ihr Cloud Run-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.
Wenn Sie eine ZIP-Datei aus Cloud Storage laden möchten, wählen Sie ZIP-Datei aus Cloud Storage, den Speicher-Bucket und dann die ZIP-Datei aus, die Sie laden möchten.
Sie können eine Cloud Run-Funktion auch mit dem Cloud Run-Funktionsseiten in der Google Cloud Console. So erstellen Sie ein synthetischer Monitor, der dieser Cloud Run-Funktion erstellt haben, rufen Sie den Tab Quelle auf und Klicken Sie auf ZIP-Datei herunterladen. Anschließend können Sie die ZIP-Datei hochladen.
Klicken Sie auf Funktion anwenden.
Konfigurieren Sie die Benachrichtigungsrichtlinie:
Optional: Name der Benachrichtigungsrichtlinie und Fehlerdauer aktualisieren bevor Benachrichtigungen gesendet werden.
Fügen Sie die Benachrichtigungskanäle hinzu.
Klicken Sie auf Erstellen.
Die von Ihnen definierte Cloud Run-Funktion wird 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 Run-Funktion.
- 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. Generation schreiben und bereitstellen
Cloud Run-Funktion.
Um beispielsweise das
synthetics-sdk-nodejs
-Beispiel in derGoogle Cloud/synthetics-sdk-nodejs
-Repository, Gehen Sie so vor: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
Stellen Sie die Cloud Run-Funktion mithilfe des
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
folgende Schritte aus:Der Wert des Felds FUNCTION_NAME muss innerhalb der Bereitstellungsregion eindeutig sein.
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
.
- Mokka:
Setzen Sie das Feld
--runtime
aufnodejs18
.Fügen Sie das Flag
--trigger-http
ein.Legen Sie das Feld
--ingress-settings
fest, wenn Sie nicht die Standardeinstellung verwenden möchten, bei der der gesamte Traffic zugelassen wird.
Mit Cloud Run-Funktionen wird Ihre Cloud Run-Funktion erstellt und dann bereitgestellt. 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 Run-Funktion bereitstellen
Verwenden Sie zum Auflisten der Cloud Run-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 Run-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 Run-Funktion: Führen Sie den Befehl
gcloud monitoring uptime describe
aus. 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 Run-Funktion.
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 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, zum Überwachen einer vorhandenen Cloud Run-Funktion.
- 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. Generation schreiben und bereitstellen
Cloud Run-Funktion.
Um beispielsweise das
synthetics-sdk-nodejs
-Beispiel in derGoogle Cloud/synthetics-sdk-nodejs
-Repository, Gehen Sie so vor: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
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
die folgenden Schritte aus:Der Wert des Felds FUNCTION_NAME muss innerhalb der Bereitstellungsregion eindeutig sein.
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
.
- Mokka:
Setzen Sie das Feld
--runtime
aufnodejs18
.Fügen Sie das Flag
--trigger-http
ein.Legen Sie das Feld
--ingress-settings
fest, wenn Sie nicht die Standardeinstellung verwenden möchten, bei der der gesamte Traffic zugelassen wird.
Mit Cloud Run-Funktionen wird Ihre Cloud Run-Funktion erstellt und dann bereitgestellt. 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 Run-Funktion bereitstellen
Verwenden Sie zum Auflisten der Cloud Run-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 Run-Funktion:
NAME: function-1 STATE: ACTIVE TRIGGER: HTTP Trigger REGION: us-west2 ENVIRONMENT: 2nd gen
Wenn Sie den vollqualifizierten Namen für eine bestimmte Cloud Run-Funktion ermitteln möchten, führen Sie den Befehl
gcloud monitoring uptime describe
aus. So erstellen Sie einen synthetischen Monitor:
- Klicken Sie auf
projects.uptimeCheckConfigs.create
, um die API-Referenzseite für die Methode zu öffnen. - Klicken Sie auf Ausprobieren, um den APIs Explorer zu öffnen.
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
: Muss den voll qualifizierten Namen Ihrer Cloud Run-Funktion enthalten.
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" } } } } }
- Übergeordnetes Feld:
- Klicken Sie auf
Erstellen Sie eine Benachrichtigungsrichtlinie.
Aufgrund der Komplexität der Konfiguration von Benachrichtigungsrichtlinien empfehlen wir, die Seite Synthetische Monitore in der Google Cloud Console aufzurufen und die Optionen zum Erstellen einer Benachrichtigungsrichtlinie zu verwenden. 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:
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 Vorab.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 }
Bearbeiten Sie Ihre Terraform-Konfigurationsdatei, fügen Sie eine
google_storage_bucket_object
-Ressource hinzu und wenden Sie die Ä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 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" }
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 Namensm-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 } }
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 } } }
Optional: Erstellen Sie einen Benachrichtigungskanal und eine Benachrichtigungsrichtlinie.
In den folgenden Schritten wird die Benachrichtigung in der Google Cloud Console erstellt Kanal und Benachrichtigungsrichtlinie. Dadurch wird sichergestellt, dass die Benachrichtigungsrichtlinie überwacht nur die von Ihrem synthetischen Monitor generierten Daten.
So erstellen Sie einen Benachrichtigungskanal:
-
Rufen Sie in der Google Cloud Console die Seite notifications Benachrichtigungen auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Wählen Sie Benachrichtigungskanäle verwalten aus.
- Wähle den Kanaltyp aus, den du hinzufügen möchtest, und klicke auf Hinzufügen. und füllen Sie das Dialogfeld aus.
-
So erstellen Sie eine Benachrichtigungsrichtlinie:
-
Wechseln Sie in der Google Cloud Console zur Seite Synthetisches Monitoring:
Gehen Sie zu Synthetisches Monitoring.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Suchen Sie Ihren synthetischen Monitor, wählen Sie more_vert Mehr aus. und wählen Sie dann Benachrichtigungsrichtlinie hinzufügen aus.
- Gehen Sie im Dialogfeld zum Abschnitt Benachrichtigungen und Name. Maximieren Sie Benachrichtigungskanäle und treffen Sie Ihre Auswahl.
- 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 Preisen für Cloud Monitoring 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 Ihr 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 gefolgt
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:
Um dieses Problem zu beheben, prüfen Sie, ob Ihrem Dienstkonto die Rolle „Cloud Trace Agent“ (roles/cloudtrace.agent
) zugewiesen wurde. Die Rolle „Bearbeiter“ (roles/editor
) ist ebenfalls ausreichend.
So rufen Sie die Rollen auf, die Ihrem Dienstkonto zugewiesen wurden:
-
Ö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 aus, dessen Zwischenüberschrift IAM und Verwaltung.
- Wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
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, wählen Sie im Navigationsmenü 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 Run-Funktion nicht einen Unterstrich enthalten. 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 gibt an, dass die Funktion gelöscht wurde und daher der synthetische Monitor die Funktion nicht ausführen kann.
Öffnen Sie die Cloud Run-Seite „Funktionen“ 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, konnte die Funktion nicht bereitgestellt werden.
This function has failed to deploy and will not work correctly. Please edit and redeploy
Überprüfen Sie den Funktionscode und beheben Sie die Fehler, die das Erstellen oder Bereitstellen der Funktion verhindern.
Wenn Sie einen synthetischen Monitor erstellen, kann es einige Minuten dauern, bis die Funktion bereitgestellt und ausgeführt wird.
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 kann auf ein Designproblem mit Ihrem Test hinweisen oder darauf, dass das Testobjekt inkonsistent reagiert.
Status „Nicht bestanden“
Das synthetische Monitoring listet einen synthetischen Monitor mit dem Status
Failing
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, wurde der Befehl vom Ziel der HTTP-Anfrage 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 der Fehler die Ausführungszeit
0ms
zurückgibt, ist der Die Cloud Run-Funktion hat möglicherweise nicht mehr genügend Arbeitsspeicher. Lösung Fehler beheben, die Cloud Run-Funktion bearbeiten und dann den Arbeitsspeicher erhöhen auf mindestens 2 GiB und legen Sie das CPU-Feld auf1
fest.
Das Löschen schlägt bei einem synthetischen Monitor fehl
Sie verwenden die Cloud Monitoring API, um einen synthetischen Monitor zu löschen. Der API-Aufruf schlägt jedoch fehl und Sie erhalten eine Antwort, die in etwa so aussieht:
{ "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 Ergebnisse des synthetischen Monitors überwachen und dann den synthetischen Monitor löschen.
Nächste Schritte
- Beispiele für synthetisches Monitoring
- Synthetisches Monitoring verwalten
- Ergebnisse des synthetischen Monitorings untersuchen