Instrumentation de votre application pour AWS X-Ray - AWS X-Ray

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Instrumentation de votre application pour AWS X-Ray

L'instrumentation de votre application implique l'envoi de données de suivi pour les demandes entrantes et sortantes et d'autres événements au sein de votre application, ainsi que des métadonnées relatives à chaque demande. Il existe plusieurs options d'instrumentation différentes que vous pouvez choisir ou combiner, en fonction de vos besoins particuliers :

  • Instrumentation automatique : instrumentez votre application sans aucune modification de code, généralement via des modifications de configuration, l'ajout d'un agent d'instrumentation automatique ou d'autres mécanismes.

  • Instrumentation de bibliothèque : apportez des modifications minimales au code de l'application pour ajouter une instrumentation prédéfinie ciblant des bibliothèques ou des frameworks spécifiques, tels que les AWS SDK HTTP clients Apache ou SQL les clients.

  • Instrumentation manuelle : ajoutez un code d'instrumentation à votre application à chaque endroit où vous souhaitez envoyer des informations de suivi.

Il existe plusieurs SDKs agents et outils qui peuvent être utilisés pour instrumenter votre application pour le traçage par rayons X.

Instrumentation de votre application avec le AWS Distro pour OpenTelemetry

The AWS Distro for OpenTelemetry (ADOT) est une AWS distribution basée sur le OpenTelemetry projet Cloud Native Computing Foundation (CNCF). OpenTelemetry fournit un ensemble unique d'open sourceAPIs, de bibliothèques et d'agents pour collecter des traces et des métriques distribuées. Cette boîte à outils est une distribution de OpenTelemetry composants en amontSDKs, notamment des agents d'auto-instrumentation et des collecteurs testés, optimisés, sécurisés et pris en charge par AWS.

Les ingénieurs peuvent ainsi instrumenter leurs applications une seule fois et envoyer des métriques et des traces corrélées à plusieurs solutions de AWS surveillance CloudWatch AWS X-Ray, notamment Amazon et Amazon OpenSearch Service. ADOT

L'utilisation de X-Ray avec ADOT nécessite deux composants : un composant OpenTelemetry SDKactivé pour X-Ray, et un AWS Distro for OpenTelemetry Collector activé pour une utilisation avec X-Ray. Pour plus d'informations sur l'utilisation de la AWS distribution pour OpenTelemetry with AWS X-Ray et d'autres Services AWS, consultez la AWS distribution pour OpenTelemetry la documentation.

Pour plus d'informations sur la prise en charge et l'utilisation des langues, consultez AWS Observability on GitHub.

Note

Vous pouvez désormais utiliser l' CloudWatch agent pour collecter des métriques, des journaux et des traces à partir d'EC2instances Amazon et de serveurs sur site. CloudWatch les versions 1.300025.0 et ultérieures de l'agent peuvent collecter des traces depuis notre client OpenTelemetryX-Ray et SDKs les envoyer à X-Ray. L'utilisation de l' CloudWatch agent au lieu du démon AWS Distro for OpenTelemetry (ADOT) Collector ou X-Ray pour collecter des traces peut vous aider à réduire le nombre d'agents que vous gérez. Consultez la rubrique CloudWatch relative aux agents dans le guide de CloudWatch l'utilisateur pour plus d'informations.

ADOTinclut les éléments suivants :

ADOTinclut actuellement le support de l'auto-instrumentation pour Java et Python. En outre, ADOT permet l'instrumentation automatique des fonctions AWS Lambda et de leurs requêtes en aval à l'aide des environnements d'exécution Java, Node.js et Python, via des couches Lambda ADOTgérées.

ADOTSDKspour Java et Go prennent en charge les règles d'échantillonnage centralisées de X-Ray. Si vous avez besoin d'assistance pour les règles d'échantillonnage X-Ray dans d'autres langues, pensez à utiliser un AWS X-Ray SDK.

Note

Vous pouvez maintenant envoyer la trace du W3C IDs à X-Ray. Par défaut, les traces créées avec OpenTelemetry ont un format d'ID de trace basé sur la spécification du W3C Trace Context. Ce format est différent du format de trace créé IDs à l'aide d'un X-Ray SDK ou par AWS des services intégrés à X-Ray. Pour vous assurer que les traces IDs au format W3C sont acceptées par X-Ray, vous devez utiliser la version 0.86.0 ou ultérieure d'AWS X-Ray Exporter, qui est incluse dans la version 0.34.0 et ultérieure de ADOTCollector. Les versions précédentes de l'exportateur valident les horodatages des identifiants de trace, ce qui peut entraîner le rejet du suivi IDs du W3C.

Instrumentation de votre application avec AWS X-Ray SDKs

AWS X-Ray inclut un ensemble de langages spécifiques SDKs pour instrumenter votre application afin d'envoyer des traces à X-Ray. Chaque X-Ray SDK fournit les éléments suivants :

  • Intercepteurs à ajouter à votre code pour suivre les demandes entrantes HTTP

  • Des gestionnaires de clients pour instrumenter AWS SDK les clients que votre application utilise pour appeler d'autres Services AWS

  • Un HTTPclient pour instrumenter les appels vers d'autres services HTTP Web internes et externes

X-Ray prend SDKs également en charge l'instrumentation des appels aux SQL bases de données, l'instrumentation automatique des AWS SDK clients et d'autres fonctionnalités. Au lieu d'envoyer les données de suivi directement à X-Ray, les documents JSON segmentés sont SDK envoyés à un processus démon qui écoute le UDP trafic. Le daemon X-Ray met en mémoire tampon les segments d'une file d'attente et les télécharge dans X-Ray par lots.

Les informations spécifiques à la langue suivantes SDKs sont fournies :

X-Ray inclut actuellement la prise en charge de l'instrumentation automatique pour Java.

Choisir entre The AWS Distro for OpenTelemetry et X-Ray SDKs

Les appareils SDKs inclus avec X-Ray font partie d'une solution d'instrumentation étroitement intégrée proposée par AWS. The AWS Distro for OpenTelemetry fait partie d'une solution industrielle plus large dans laquelle X-Ray n'est qu'une des nombreuses solutions de traçage. Vous pouvez implémenter le end-to-end traçage dans X-Ray en utilisant l'une ou l'autre approche, mais il est important de comprendre les différences afin de déterminer l'approche la plus utile pour vous.

Nous vous recommandons d'instrumenter votre application avec le AWS Distro OpenTelemetry si vous avez besoin des éléments suivants :

  • La possibilité d'envoyer des traces à plusieurs backends de suivi différents sans avoir à réinstrumenter votre code

  • Support pour un grand nombre d'instrumentations de bibliothèque pour chaque langue, maintenues par la communauté OpenTelemetry

  • Des couches Lambda entièrement gérées qui regroupent tout ce dont vous avez besoin pour collecter des données de télémétrie, sans qu'il soit nécessaire de modifier le code lors de l'utilisation de Java, Python ou Node.js

    Note

    AWS Distro for OpenTelemetry offre une expérience de démarrage plus simple pour l'instrumentation de vos fonctions Lambda. Cependant, en raison OpenTelemetry des offres de flexibilité, votre fonction Lambda nécessitera de la mémoire supplémentaire et les appels peuvent connaître une augmentation de la latence de démarrage à froid, ce qui peut entraîner des frais supplémentaires. Si vous optez pour une faible latence et que vous n'avez pas besoin OpenTelemetry de fonctionnalités avancées telles que des destinations dorsales configurables dynamiquement, vous pouvez utiliser le AWS X-Ray SDK pour instrumenter votre application.

Nous vous recommandons de choisir un X-Ray SDK pour instrumenter votre application si vous avez besoin des éléments suivants :

  • Une solution à fournisseur unique étroitement intégrée

  • Intégration aux règles d'échantillonnage centralisées de X-Ray, notamment la possibilité de configurer les règles d'échantillonnage depuis la console X-Ray et de les utiliser automatiquement sur plusieurs hôtes, lors de l'utilisation de Node.js, Python, Ruby ou. NET