Le traçage OpenTelemetry vous permet d'identifier et de tracer la latence de plusieurs Opérations de la bibliothèque cliente Pub/Sub, telles que le traitement par lot ou le bail la gestion et le contrôle de flux. Collecter ces informations peut vous aider à déboguer de la bibliothèque cliente.
Voici quelques cas d'utilisation potentiels du traçage OpenTelemetry :
- Votre service subit actuellement une latence de publication supérieure à la normale.
- Vous constatez un nombre élevé de renvois de messages.
- Une modification de la fonction de rappel de votre client abonné entraîne un traitement plus long que d'habitude.
Avant de commencer
Avant de configurer OpenTelemetry, effectuez les tâches suivantes :
- Configurez Pub/Sub à l'aide de l'une des bibliothèques clientes.
- Installez le SDK OpenTelemetry. et configurer un exportateur de traces et un fournisseur de traceurs.
- Activez Cloud Trace API.
- Découvrez comment lire les traces d'observabilité dans le cloud.
Rôles requis
Pour vous assurer que le compte de service dispose des autorisations nécessaires pour exporter des traces vers Cloud Trace, demandez à votre administrateur d'accorder au compte de service les rôles IAM suivants sur votre projet :
-
Tous:
Agent Cloud Trace (
roles/cloudtrace.agent
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour exporter des traces vers Cloud Trace. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour exporter des traces vers Cloud Trace:
-
Tous :
cloudtrace.traces.patch
Votre administrateur peut également attribuer au compte de service ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Workflow de traçage OpenTelemetry
Pour configurer le traçage OpenTelemetry, vous utilisez l'API Pub/Sub les bibliothèques clientes et le SDK OpenTelemetry. Avec le SDK, vous devez configurer un exportateur de trace et un fournisseur de traceur avant de vous connecter aux bibliothèques Pub/Sub. Dans certaines bibliothèques, la configuration d'un fournisseur de traceur est facultatif.
Exportateur Trace. Le SDK OpenTelemetry utilise l'exportateur de traces pour déterminer où envoyer les traces.
Fournisseur de traceur Les bibliothèques clientes Pub/Sub utilisent le fournisseur de traceur pour créer des traces.
Pour configurer le traçage, procédez comme suit:
- Instancier un exportateur OpenTelemetry Cloud Trace.
- Si nécessaire, instanciez et enregistrez un fournisseur Tracer à l'aide du SDK OpenTelemetery.
- Configurez votre client avec l'option "Activer le traçage OpenTelemetry".
- Publiez un message à l'aide des bibliothèques clientes Pub/Sub.
Fonctionnement du traçage
Pour chaque message publié, la bibliothèque cliente crée une trace. Cette trace représente l'ensemble du cycle de vie du message, du moment où vous le publiez jusqu'à ce qu'il soit accusé réception. Une trace encapsule des informations telles que la durée des opérations, les segments parents et enfants, segments.
Une trace se compose d'un délai racine et de ses délais enfants correspondants. Ces Les segments représentent le travail effectué par la bibliothèque cliente lors du traitement d'un message. Chaque La trace du message contient les éléments suivants:
- Pour la publication. le contrôle de flux, la planification des clés de tri, le traitement par lot et la durée du RPC de publication.
- Pour les abonnements : le contrôle de simultanéité, la planification des clés et la gestion du bail.
Pour propager des informations du côté de la publication vers le côté de l'abonnement, les bibliothèques clientes injectent un attribut spécifique au traçage côté publication. Le mécanisme de propagation de contexte n'est activé que lorsque le traçage est activé et est précédé du préfixe googclient_
.
Publier des messages avec le traçage
L'exemple de code suivant montre comment activer le traçage à l'aide de la bibliothèque cliente Pub/Sub et du SDK OpenTelemetry. Dans cet exemple, les résultats de traçage sont exportés vers Cloud Trace.
Remarques
Lorsque vous instanciez le fournisseur de traceur, vous configurez un ratio d'échantillonnage avec le SDK OpenTelemetry. Ce ratio détermine le nombre de traces que le SDK doit échantillonner. Un taux d'échantillonnage faible permet de réduire les coûts de facturation et d'éviter votre service de dépasser le délai Cloud Trace quota.
Go
C++
Python
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
TypeScript
Node.js
Java
Recevoir des messages avec le traçage
Go
C++
Python
TypeScript
Node.js
Java
Analyser une trace
Les sections suivantes contiennent des informations détaillées sur la façon de suivre et d'analyser une trace dans la console Google Cloud.
Remarques
- Lors de la publication d'un lot de messages, le délai RPC de publication est capturé dans un une trace distincte.
- Un RPC de publication comporte plusieurs périodes d'origine, car plusieurs appels de création peuvent entraîner un RPC de publication lorsqu'ils sont regroupés.
Dans OpenTelemetry, les segments peuvent avoir un ou aucun délai parent.
des segments représentant des opérations par lot (par exemple, un lot de publication) ; (qui devraient logiquement avoir plusieurs parents) ne peuvent pas être représentées à l'aide de ou un segment parent.
Intervalles de suivi créés pendant le cycle de vie du message
L'image suivante montre un exemple de délais créés dans une seule trace. pour un seul message.
Chaque segment peut comporter des attributs supplémentaires qui fournissent des informations supplémentaires, telles que la taille en octets du message et les informations clés de tri.
Les attributs de span transmettent des métadonnées supplémentaires, telles que la clé de tri du message, l'ID du message et la taille du message.
Les principaux segments de publication et d'abonnement sont complétés par des événements de segment qui correspond au moment où un appel réseau est émis et quand il est terminé.
Résoudre les problèmes courants
Les problèmes suivants peuvent entraîner des problèmes de traçage :
- Le compte de service que vous utilisez pour exporter des traces ne dispose pas du rôle
roles/cloudtrace.agent
requis. - Le quota du nombre maximal de segments ingérés dans Cloud Trace a été atteint.
- Votre application est arrêtée sans appeler le processus de suppression .