Affichez la latence des requêtes d'application
Découvrez comment collecter et afficher les données de latence de vos applications:
Créer un cluster Google Kubernetes Engine (GKE) à l'aide de la Google Cloud CLI
Téléchargez et déployez un exemple d'application sur votre cluster.
Créer une trace en envoyant une requête HTTP à l'exemple d'application
Affichez les informations de latence de la trace que vous avez créée.
effectuer un nettoyage.
Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, cliquez sur Visite guidée :
Avant de commencer
-
Les contraintes de sécurité définies par votre organisation peuvent vous empêcher d'effectuer les étapes suivantes. Pour obtenir des informations de dépannage, consultez la page Développer des applications dans un environnement Google Cloud limité.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine and Cloud Trace APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine and Cloud Trace APIs.
Créer un cluster GKE
Dans la barre d'outils, cliquez sur terminal
Activer Cloud Shell , puis effectuez les étapes suivantes dans Cloud Shell.Créez un cluster :
gcloud container clusters create cloud-trace-demo --zone us-central1-c
La commande précédente, qui prend plusieurs minutes, crée un cluster standard nommé
cloud-trace-demo
dans la zoneus-central1-c
.Configurez
kubectl
pour actualiser automatiquement ses identifiants afin d'utiliser la même identité que la Google Cloud CLI:gcloud container clusters get-credentials cloud-trace-demo --zone us-central1-c
Vérifiez l'accès à votre cluster:
kubectl get nodes
Voici un exemple de sortie pour cette commande :
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
Télécharger et déployer une application
Téléchargez et déployez une application Python, qui utilise le framework Flask et le package OpenTelemetry. L'application est décrite dans la section À propos de l'application de cette page.
Dans Cloud Shell, procédez comme suit :
Clonez une application Python depuis GitHub:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Exécutez la commande suivante pour déployer l'exemple d'application:
cd python-docs-samples/trace/cloud-trace-demo-app-opentelemetry && ./setup.sh
L'exécution du script
setup.sh
prend plusieurs minutes.Le script configure trois services à l'aide d'une image prédéfinie, puis attend que toutes les ressources soient provisionnées. Les charges de travail sont nommées
cloud-trace-demo-a
,cloud-trace-demo-b
etcloud-trace-demo-c
.Voici un exemple de sortie pour cette commande :
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.
Créer des données de trace
Une trace décrit le temps nécessaire à une application pour effectuer une seule opération.
Pour créer une trace, exécutez la commande suivante dans Cloud Shell:
curl $(kubectl get svc -o=jsonpath='{.items[?(@.metadata.name=="cloud-trace-demo-a")].status.loadBalancer.ingress[0].ip}')
La réponse de la commande précédente se présente comme suit:
Hello, I am service A
And I am service B
Hello, I am service C
Vous pouvez exécuter la commande curl
plusieurs fois pour générer plusieurs traces.
Afficher les données de latence
-
Dans la console Google Cloud, accédez à la page Explorateur Trace.
Vous pouvez également accéder à cette page à l'aide de la barre de recherche.
Chaque trace est représentée par un point sur le graphique et par une ligne dans la table.
La capture d'écran suivante montre plusieurs traces:
Pour afficher les détails d'une trace, sélectionnez un point dans le graphique ou une ligne dans la table.
Le graphique à nuage de points est actualisé et un cercle s'affiche autour du point sélectionné pour le mettre en évidence. Tous les autres points représentant toutes les autres traces sont grisés.
Un diagramme de Gantt affiche des informations sur la trace sélectionnée. La première ligne du diagramme de Gantt correspond à la trace, et il existe une ligne pour chaque segment de la trace. Un segment décrit le temps nécessaire pour effectuer une sous-opération complète.
Pour afficher des informations détaillées sur un segment, sélectionnez-le dans le diagramme de Gantt.
À propos de l'application
L'exemple d'application utilisé dans ce guide de démarrage rapide est disponible dans un dépôt GitHub. Ce dépôt contient des informations sur l'utilisation de l'application dans des environnements autres que Cloud Shell. L'exemple d'application est écrit en Python, utilise le framework Flask et OpenTelemetry crée des packages et s'exécute sur un cluster GKE.
Instrumentation
Le fichier app.py
du dépôt GitHub contient les outils nécessaires pour capturer et envoyer des données de trace à votre projet Google Cloud :
L'application importe plusieurs packages OpenTelemetry:
L'application instrumente les requêtes Web avec un contexte de trace et trace automatiquement les gestionnaires Flask et les requêtes envoyées à d'autres services :
L'application configure l'exportateur Cloud Trace en tant que fournisseur de trace, qui propage le contexte de trace au format Cloud Trace :
L'extrait de code suivant montre comment envoyer des requêtes en Python. OpenTelemetry propage implicitement le contexte de trace pour vous avec votre les requêtes sortantes:
Fonctionnement de l'application
Pour plus de clarté, dans cette section, cloud-trace-demo
est omis des noms de service. Par exemple, le service cloud-trace-demo-c
est référencé en tant que c
.
Cette application crée trois services nommés a
, b
et c
. Le service a
est configuré pour appeler le service b
, et le service b
est configuré pour appeler le service c
.
Pour en savoir plus sur la configuration des services, consultez les fichiers YAML du dépôt GitHub.
Lorsque vous avez envoyé une requête HTTP au service a
dans ce démarrage rapide, vous avez utilisé la commande curl
suivante :
curl $(kubectl get svc -o=jsonpath='{.items[?(@.metadata.name=="cloud-trace-demo-a")].status.loadBalancer.ingress[0].ip}')
La commande curl
fonctionne comme suit :
kubectl
récupère l'adresse IP du service nommécloud-trace-demo-a
.- La commande
curl
envoie ensuite la requête HTTP au servicea
. - Le service
a
reçoit la requête HTTP et envoie une requête au serviceb
. - Le service
b
reçoit la requête HTTP et envoie une requête au servicec
. - Le service
c
reçoit la requête HTTP du serviceb
et renvoie la valeur la chaîneHello, I am service C
au serviceb
. - Le service
b
reçoit la réponse du servicec
, l'ajoute à la chaîneAnd I am service B
et renvoie le résultat au servicea
. - Le service
a
reçoit la réponse du serviceb
et l'ajoute au chaîneHello, I am service A
. - La réponse du service
a
est imprimée dans Cloud Shell.
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :
Si vous avez créé un projet et que vous n'en avez plus besoin, supprimez-le.
Si vous avez utilisé un projet existant, procédez comme suit:
Pour supprimer votre cluster, exécutez la commande suivante dans Cloud Shell:
gcloud container clusters delete cloud-trace-demo --zone us-central1-c
Étape suivante
- Pour en savoir plus sur les langages et les plates-formes compatibles, consultez la page Présentation de Cloud Trace.
Pour plus de détails sur la manière d'instrumenter vos applications, consultez:
Pour en savoir plus sur la fenêtre Trace Explorer, consultez la page Rechercher et afficher des traces.
Pour en savoir plus sur la gestion des clusters GKE, consultez la page kubectl.