Latenz von Anwendungsanfragen ansehen
Hier erfahren Sie, wie Sie Latenzdaten aus Ihren Anwendungen erfassen und ansehen:
GKE-Cluster (Google Kubernetes Engine) erstellen mithilfe der Google Cloud CLI.
Laden Sie die Beispielanwendung herunter und stellen Sie sie im Cluster bereit.
Erstellen Sie einen Trace, indem Sie eine HTTP-Anfrage an die Beispielanwendung senden.
Sehen Sie sich die Latenzinformationen des von Ihnen erstellten Trace an.
bereinigen.
Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.
Hinweise
-
Von Ihrer Organisation definierte Sicherheitsbeschränkungen verhindern möglicherweise, dass die folgenden Schritte ausgeführt werden. Informationen zur Fehlerbehebung finden Sie unter Anwendungen in einer eingeschränkten Google Cloud-Umgebung entwickeln.
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Google Kubernetes Engine and Cloud Trace APIs aktivieren.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Google Kubernetes Engine and Cloud Trace APIs aktivieren.
GKE-Cluster erstellen
Klicken Sie in der Symbolleiste auf terminal.
Aktivieren Sie Cloud Shell und führen Sie dann die folgenden Schritte aus. in Cloud Shell auf.Erstellen Sie einen Cluster.
gcloud container clusters create cloud-trace-demo --zone us-central1-c
Mit dem vorherigen Befehl, der einige Minuten benötigen kann, wird ein Standardcluster mit dem Namen
cloud-trace-demo
in der Zoneus-central1-c
erstellt.Konfigurieren Sie
kubectl
so, dass die Anmeldedaten für die Verwendung automatisch aktualisiert werden dieselbe Identität wie die Google Cloud CLI:gcloud container clusters get-credentials cloud-trace-demo --zone us-central1-c
Prüfen Sie den Zugriff auf den Cluster:
kubectl get nodes
Hier ein Beispiel für diesen Befehl:
NAME STATUS ROLES AGE VERSION gke-cloud-trace-demo-default-pool-063c0416-113s Ready <none> 78s v1.22.12-gke.2300 gke-cloud-trace-demo-default-pool-063c0416-1n27 Ready <none> 79s v1.22.12-gke.2300 gke-cloud-trace-demo-default-pool-063c0416-frkd Ready <none> 78s v1.22.12-gke.2300
Download und Bereitstellung einer Anwendung
Python-Anwendung herunterladen und bereitstellen, die das Flask-Framework und das OpenTelemetry-Paket verwendet. Die Anwendung wird im Abschnitt Über die App auf dieser Seite beschrieben.
Gehen Sie in Cloud Shell so vor:
Python-Anwendung von GitHub klonen:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Führen Sie den folgenden Befehl aus, um die Beispielanwendung:
cd python-docs-samples/trace/cloud-trace-demo-app-opentelemetry && ./setup.sh
Das Script
setup.sh
kann mehrere Minuten dauern.Das Skript konfiguriert drei Dienste mithilfe eines vordefinierten Images und wartet bis alle Ressourcen bereitgestellt werden. Die Arbeitslasten haben den Namen
cloud-trace-demo-a
,cloud-trace-demo-b
undcloud-trace-demo-c
.Hier ein Beispiel für diesen Befehl:
deployment.apps/cloud-trace-demo-a is created service/cloud-trace-demo-a is created deployment.apps/cloud-trace-demo-b is created service/cloud-trace-demo-b is created deployment.apps/cloud-trace-demo-c is created service/cloud-trace-demo-c is created Wait for load balancer initialization complete...... Completed.
Trace-Daten erstellen
Ein Trace beschreibt, wie lange eine Anwendung benötigt, um einen einzelnen Vorgang abzuschließen.
Führen Sie in Cloud Shell den folgenden Befehl aus, um einen Trace zu erstellen:
curl $(kubectl get svc -o=jsonpath='{.items[?(@.metadata.name=="cloud-trace-demo-a")].status.loadBalancer.ingress[0].ip}')
Die Antwort auf den vorherigen Befehl sieht so aus:
Hello, I am service A
And I am service B
Hello, I am service C
Sie können den Befehl curl
mehrmals ausführen, um mehrere Traces zu generieren.
Latenzdaten ansehen
-
Rufen Sie in der Google Cloud Console die Seite Trace Explorer auf:
Sie können diese Seite auch über die Suchleiste finden.
Jeder Trace wird durch einen Punkt im Diagramm und eine Zeile in der Tabelle dargestellt.
Der folgende Screenshot zeigt mehrere Traces:
Wählen Sie einen Punkt im Diagramm oder eine Zeile in der Tabelle aus, um sich einen Trace im Detail anzusehen.
Das Streudiagramm wird aktualisiert und der Punkt, den Sie ausgewählt haben, werden mit einem Kreis um den Punkt und alle anderen Punkte hervorgehoben, alle anderen Traces grau dargestellt sind.
Ein Gantt-Diagramm zeigt Informationen zum ausgewählten Trace. Die erste Zeile im Gantt-Diagramm steht für den Trace und es gibt eine Zeile für jeden Span im Trace. Ein Span beschreibt, wie lange es dauert, einen vollständigen Untervorgang auszuführen.
Um detaillierte Informationen zu einem Span anzuzeigen, können Sie im Gantt-Diagramm wählen Sie den Bereich aus.
Über die Anwendung
Die in dieser Kurzanleitung verwendete Beispielanwendung ist in einem GitHub-Repository verfügbar. Dieses Repository enthält Informationen zur Verwendung der Anwendung in anderen Umgebungen als Cloud Shell. Die Beispielanwendung ist in Python geschrieben, verwendet das Flask-Framework und OpenTelemetry-Pakete und die Ausführung in einem GKE-Cluster.
Instrumentierung
Die Datei app.py
im GitHub-Repository enthält die Instrumentierung, die zum Erfassen und Senden von Trace-Daten an Ihr Google Cloud-Projekt erforderlich ist:
Die Anwendung importiert mehrere OpenTelemetry-Pakete:
Die Anwendung instrumentiert Webanfragen mit Trace-Kontext und automatisch verfolgt Flask-Handler und Anfragen an andere Dienste:
Die Anwendung konfiguriert den Cloud Trace-Exporter als Trace-Anbieter. gibt Trace-Kontext im Cloud Trace-Format weiter:
Das folgende Code-Snippet zeigt, wie Anfragen in Python gesendet werden. OpenTelemetry leitet den Trace-Kontext implizit für Sie mit Ihrem ausgehende Anfragen:
Funktionsweise der Anwendung
Zur besseren Übersichtlichkeit wird in diesem Abschnitt cloud-trace-demo
aus den Dienstnamen weggelassen. Beispiel: Der Dienst cloud-trace-demo-c
wird als c
bezeichnet.
Diese Anwendung erstellt drei Dienste mit den Namen a
, b
und c
. Dienst a
ist
konfiguriert für den Aufruf des Dienstes b
und Dienst b
für den Aufruf des Dienstes c
.
Weitere Informationen zur Konfiguration der Dienste finden Sie in den YAML-Dateien im GitHub-Repository.
Wenn Sie in diesem Schnellstart eine HTTP-Anfrage an den Dienst a
gesendet haben, haben Sie den folgenden curl
-Befehl verwendet:
curl $(kubectl get svc -o=jsonpath='{.items[?(@.metadata.name=="cloud-trace-demo-a")].status.loadBalancer.ingress[0].ip}')
Der Befehl curl
funktioniert so:
kubectl
ruft die IP-Adresse des Dienstescloud-trace-demo-a
ab.- Der Befehl
curl
sendet dann die HTTP-Anfrage an den Diensta
. - Dienst
a
empfängt die HTTP-Anfrage und sendet eine Anfrage an den Dienstb
. - Dienst
b
empfängt die HTTP-Anfrage und sendet eine Anfrage an den Dienstc
. - Der Dienst
c
empfängt die HTTP-Anfrage vom Dienstb
und gibt den Fehlerwert StringHello, I am service C
für Dienstb
. - Der Dienst
b
empfängt die Antwort vom Dienstc
und hängt sie an denAnd I am service B
und gibt das Ergebnis an den Diensta
zurück. - Der Dienst
a
empfängt die Antwort vom Dienstb
und hängt sie an den StringHello, I am service A
. - Die Antwort vom Dienst
a
wird in Cloud Shell ausgegeben.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
Wenn Sie ein neues Projekt erstellt haben und es nicht mehr benötigen, Löschen Sie das Projekt.
Wenn Sie ein vorhandenes Projekt verwendet haben, gehen Sie so vor:
Führen Sie in Cloud Shell den folgenden Befehl aus, um den Cluster zu löschen:
gcloud container clusters delete cloud-trace-demo --zone us-central1-c
Nächste Schritte
- Informationen zu den unterstützten Sprachen und Plattformen finden Sie unter Cloud Trace – Übersicht
Weitere Informationen zur Instrumentierung Ihrer Anwendungen finden Sie unter:
Weitere Informationen zum Fenster Trace Explorer finden Sie unter Traces suchen und ansehen
Weitere Informationen zum Verwalten von GKE-Clustern finden Sie unter kubectl erstellen.