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 le AWS SDK, les clients HTTP Apache ou les clients SQL.

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

Il existe plusieurs SDK, agents et outils qui peuvent être utilisés pour équiper votre application de 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 projet Cloud Native Computing Foundation (CNCF). OpenTelemetry OpenTelemetry fournit un ensemble unique d'API, de bibliothèques et d'agents open source pour collecter des traces et des métriques distribuées. Cette boîte à outils est une distribution de OpenTelemetry composants en amont, notamment des SDK, des agents d'auto-instrumentation et des collecteurs testés, optimisés, sécurisés et pris en charge par. AWS

Avec ADOT, les ingénieurs peuvent 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.

L'utilisation de X-Ray avec ADOT nécessite deux composants : un OpenTelemetry SDK activé pour une utilisation avec X-Ray, et le 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'instances Amazon EC2 et de serveurs sur site. CloudWatch les versions 1.300025.0 et ultérieures de l'agent peuvent collecter des traces à partir des SDK des clients OpenTelemetryX-Ray et les envoyer à X-Ray. L'utilisation de l' CloudWatch agent au lieu du daemon 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.

ADOT inclut les éléments suivants :

ADOT inclut actuellement la prise en charge de l'instrumentation automatique 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 gérées par ADOT.

Les SDK ADOT pour 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 des identifiants de trace du W3C à 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 des identifiants de trace créés à l'aide d'un SDK X-Ray ou par AWS des services intégrés à X-Ray. Pour vous assurer que les identifiants de trace au format W3C sont acceptés par X-Ray, vous devez utiliser la version 0.86.0 ou ultérieure d'AWS X-Ray Exporter, qui est incluse dans ADOT Collector version 0.34.0 et ultérieure. Les versions précédentes de l'exportateur valident les horodatages des identifiants de trace, ce qui peut entraîner le rejet des identifiants de trace du W3C.

Instrumentation de votre application à l'aide de kits de développement logiciel AWS X-Ray

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

  • Des intercepteurs à ajouter à votre code pour suivre les demandes HTTP entrantes

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

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

Les SDK X-Ray prennent également en charge l'instrumentation des appels aux bases de données SQL, l'instrumentation client automatique des AWS SDK et d'autres fonctionnalités. Au lieu d'envoyer les données de suivi directement à X-Ray, le SDK envoie des documents de segments JSON à un processus démon qui écoute le trafic UDP. 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 SDK spécifiques aux langues suivants sont fournis :

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

Choisir entre les SDK AWS Distro for OpenTelemetry et X-Ray

Les SDK inclus dans 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 SDK AWS X-Ray pour instrumenter votre application.

Nous vous recommandons de choisir un SDK X-Ray 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