Cloud Trace, un système de traçage distribué pour Google Cloud, vous aide à comprendre le temps nécessaire à votre application pour gérer les requêtes entrantes des utilisateurs ou d'autres applications, ainsi que le temps nécessaire pour effectuer des opérations telles que les appels RPC. Trace peut également vous aider lorsque vous développez un service ou résolvez un problème. Par exemple, il peut vous aider à comprendre comment les requêtes sont traitées dans une architecture de microservices complexe et à identifier les journaux à examiner.
Comme Trace reçoit des données de latence de certains Google Cloud services, tels qu'App Engine, et d'applications instrumentées avec l'API Cloud Trace, il peut vous aider à répondre aux questions suivantes :
- Combien de temps faut-il à mon application pour traiter une requête donnée ?
- Pourquoi mon application est-elle si longue à traiter ma requête ?
- Pourquoi le traitement de certaines requêtes est-il plus long que pour d'autres ?
- Quelle est la latence globale des requêtes adressées à mon application ?
- La latence de mon application a-t-elle augmenté ou diminué avec le temps ?
- Que puis-je faire pour réduire la latence de mon application ?
- Quelles sont les dépendances de mon application ?
Si vous souhaitez savoir comment utiliser Trace pour gérer vos applications, consultez l'article de blog Résoudre les problèmes liés aux applications distribuées : utiliser conjointement les traces et les journaux pour analyser l'origine des problèmes.
Pour en savoir plus sur le profilage de votre application, consultez Cloud Profiler.
Environnements compatibles
Trace s'exécute sur Linux dans les environnements suivants :
- Compute Engine
- Google Kubernetes Engine (GKE)
- Apigee (préversion publique)
- Environnement flexible App Engine
- Environnement standard App Engine
- Cloud Run
- Cloud Service Mesh
- Insights sur les requêtes Cloud SQL
- Environnements non-Google Cloud compatibles
Trace fournit des bibliothèques clientes pour instrumenter votre application afin de capturer des informations de trace. Pour obtenir les instructions de configuration par langage, consultez la page Instrumenter pour Trace.
Configurations avec traçage automatique
Certaines configurations entraînent la capture automatique des données de trace :
Environnement standard App Engine
Les applications Java 8, Python 2 et PHP 5 n'ont pas besoin d'utiliser les bibliothèques clientes Trace. Ces environnements d'exécution envoient automatiquement des données de latence à Trace pour les requêtes adressées aux URI de l'application. Les requêtes incluent des données de latence pour les appels RPC aller-retour aux services App Engine. Trace fonctionne avec toutes les API d'administration d'App Engine, à l'exception de Cloud SQL.
Cloud Run Functions et Cloud Run
Pour les requêtes HTTP entrantes et sortantes, les données de latence sont automatiquement envoyées à Trace.
API qui ingèrent des données de trace
Vous pouvez envoyer des données de trace à votre projet à l'aide de l'API Telemetry ou de l'API Cloud Trace. Nous vous recommandons d'utiliser l'API Telemetry pour les raisons suivantes :
L'API est compatible avec l'écosystème Open Source OpenTelemetry et ses limites sont souvent plus généreuses que celles de l'API Cloud Trace, qui est une API propriétaire Google Cloud
Vos données de trace sont stockées dans un format généralement cohérent avec les fichiers proto définis par le protocole OTLP OpenTelemetry. Certains champs peuvent être convertis d'un type de données spécifique à OpenTelemetry en un type de données JSON avant d'être stockés. Pour en savoir plus sur le format de stockage, consultez la section Schéma des données de trace.
Pour l'exportation des données de trace basée sur un collecteur, votre instrumentation ne dépend pas d'un Google Cloud-exportateur spécifique.
Certaines fonctionnalités, telles que la surveillance des applications, reposent sur des informations qui ne sont disponibles que lorsque vous envoyez des données de trace à l'API Telemetry.
Si vous souhaitez empêcher votre Google Cloud projet de stocker des données de trace, désactivez l'API Cloud Trace. La désactivation de l'API Cloud Trace entraîne les conséquences suivantes :
- Google Cloud Les services n'envoient pas de données de trace à votre projet.
- Google Cloud Les réponses aux requêtes envoyées à un point de terminaison de l'API Cloud Trace contiennent un code d'erreur.
- Google Cloud Observability ignore les données de trace envoyées au point de terminaison de l'API Telemetry spécifique aux traces. Ne désactivez pas l'API Telemetry, car elle peut recevoir des données de journal, de métriques et de trace.
Langues acceptées
Le tableau suivant récapitule la disponibilité des bibliothèques clientes Trace et des OpenTelemetry pour lesquelles il existe un exportateur vers Trace.
| Langue | Bibliothèque cliente disponible |
Bibliothèque/exportateur OpenTelemetry disponible |
|---|---|---|
| C++ | Oui | Oui |
| C# ASP.NET Core | Oui | Non |
| C# ASP.NET | Oui | Non |
| Go | Oui | Oui |
| Java | Oui | Oui |
| Node.js | Oui | Oui |
| PHP | Oui | Non |
| Python | Oui | Oui |
| Ruby | Oui | Oui |
OpenTelemetry OpenTelemetry sont plus simples à utiliser que les bibliothèques clientes Trace, car elles masquent une partie de la complexité de l'API Trace correspondante. Pour obtenir des recommandations sur l'instrumentation, consultez la section Choisir une approche d'instrumentation.
Composants
Trace est un client de traçage qui collecte des traces et les envoie à votre Google Cloud projet. Vous pouvez ensuite consulter et analyser les données collectées par l'agent dans la Google Cloud console. Pour en savoir plus sur le modèle de données, consultez la section Traces et segments.
Client de traçage
Si une bibliothèque OpenTelemetry est disponible pour votre langage de programmation, vous pouvez simplifier le processus de création et d'envoi de données de trace en utilisant OpenTelemetry. En plus d'être plus simple à utiliser, OpenTelemetry implémente le traitement par lot, ce qui peut améliorer les performances.
Si aucune bibliothèque OpenTelemetry n'existe, instrumentez votre code en important la bibliothèque du SDK Trace et en utilisant l'API Cloud Trace. L'API Cloud Trace envoie des données de trace à votre Google Cloud projet.
Interface de traçage
Vous pouvez afficher et analyser vos données de trace en temps quasi réel dans l'interface Trace.
Pour afficher et analyser vos données de segment, vous pouvez utiliser les Explorateur Trace et Observability Analytics pages de la Google Cloud console :
Explorateur Trace : affiche des informations agrégées sur vos données de trace et vous permet d'examiner des traces individuelles en détail. Les données de latence agrégées sont affichées sur une carte de densité que vous pouvez explorer avec votre pointeur. Pour limiter les données affichées, vous pouvez ajouter des filtres. Cette page vous permet également d'afficher et d'explorer des segments et des traces individuels :
- Pour savoir comment afficher les données de trace stockées dans plusieurs projets, consultez la section Créer et gérer un champ d'application de trace.
- Pour en savoir plus sur le filtrage et l'affichage de vos données de trace, consultez la section Rechercher et explorer des traces.
Observability Analytics : cette page vous permet d'exécuter des requêtes qui effectuent une analyse agrégée de vos segments à l'aide de SQL. Vos requêtes SQL peuvent également joindre vos données de trace et de journal. Vous pouvez afficher les résultats de votre requête sous forme de tableau ou de graphique. Si vous créez un ensemble de données associé, vous pouvez utiliser BigQuery pour analyser vos segments. Pour en savoir plus, consultez la section Interroger et analyser des traces.
Compatibilité avec VPC Service Controls
Trace est un service compatible avec VPC Service Controls. Le nom du service Trace est cloudtrace.googleapis.com. Toutes les restrictions VPC Service Controls que vous créez pour le service Trace ne s'appliquent qu'à ce service. Ces restrictions
ne s'appliquent à aucun autre service, y compris ceux comme le
telemetry.googleapis.com service,
qui peuvent également ingérer des données de trace.
Pour en savoir plus, consultez les ressources suivantes :
Cloud Trace et résidence des données
Si vous utilisez Assured Workloads car vous avez des exigences de résidence des données ou de niveau d'impact 4 (IL4), n'utilisez pas l'API Cloud Trace pour envoyer des segments de trace.
Si vous souhaitez empêcher votre Google Cloud projet de stocker des données de trace, désactivez l'API Cloud Trace. La désactivation de l'API Cloud Trace entraîne les conséquences suivantes :
- Google Cloud Les services n'envoient pas de données de trace à votre projet.
- Google Cloud Les réponses aux requêtes envoyées à un point de terminaison de l'API Cloud Trace contiennent un code d'erreur.
- Google Cloud Observability ignore les données de trace envoyées au point de terminaison de l'API Telemetry spécifique aux traces. Ne désactivez pas l'API Telemetry, car elle peut recevoir des données de journal, de métriques et de trace.
Tarifs
Pour en savoir plus sur les tarifs de Cloud Trace, consultez la page Tarifs de Google Cloud Observability.
Étape suivante
Lisez le Guide de démarrage rapide.
Pour plus d'informations sur les quotas et les limites, consultez la section Quotas et limites.
Consultez nos ressources sur le DevOps et découvrez le programme de recherche DevOps Research and Assessment.