- Outils pour développeurs›
- AWS X-Ray›
- Questions fréquentes (FAQ)
FAQ sur AWS X-Ray
Questions d'ordre général
Qu’est-ce qu’AWS X-Ray ?
AWS X-Ray aide les développeurs à analyser et à déboguer la production et les applications distribuées, comme celles créées à l'aide d'une architecture de micro-services. X-Ray vous permet de comprendre le fonctionnement de votre application. Ses services sous-jacents s'occupent de l'identification et de la résolution de la cause profonde des problèmes et des erreurs de performance. X-Ray affiche un plan des composants sous-jacents de votre application et fournit un aperçu de bout en bout des requêtes qui transitent dans celle-ci. Vous pouvez utiliser X-Ray pour analyser les applications en cours de développement ou en production, qu'il s'agisse d'applications simples à trois niveaux ou d'applications complexes en microservices comprenant des milliers de services.
Pourquoi utiliser X-Ray ?
Actuellement, pour suivre les requêtes dans votre application dans le cas où vous développez et exécutez des applications distribuées, vous devez vous appuyer sur un processus par service ou par ressource, qui parcourt les différents composants constituant votre application. Ce problème est rendu encore plus complexe par la variété de formats de fichiers journaux et de supports de stockage dans les frameworks, services et ressources que votre application utilise ou sur lesquels elle s'exécute. Il est ainsi difficile de mettre en corrélation les différentes données et de créer une image exhaustive d'une requête entre le moment où elle est créée par l'utilisateur final ou le service et le moment où une réponse est renvoyée par votre application. X-Ray offre un modèle centré sur l'utilisateur et non sur les services ou les ressources, afin de collecter les données liées aux requêtes adressées à votre application. Ce modèle vous permet d'obtenir une image des requêtes parcourant les services et les ressources centrée sur l'utilisateur. En mettant les données en corrélation et en les regroupant en votre nom, X-Ray vous permet de vous concentrer sur l'amélioration de l'expérience pour les utilisateurs finaux de votre application.
Que puis-je faire avec X-Ray ?
Grâce à X-Ray, vous pouvez facilement :
- Créer une cartographie des services – En suivant les requêtes envoyées à vos applications, X-Ray peut créer une cartographie des services utilisés par votre application. Celle-ci vous permet de visualiser les connexions entre les services dans votre application et vous permet de créer un arbre de dépendance, de détecter la latence ou les erreurs lorsque vous travaillez dans plusieurs zones de disponibilité ou régions AWS, de vous concentrer sur les services qui ne fonctionnent pas comme prévu, etc.
- Identifier les erreurs et les bogues – X-Ray peut automatiquement mettre en évidence les bogues ou les erreurs dans le code de votre application en analysant le code de réponse pour chaque requête envoyée à votre application. Vous pouvez donc déboguer facilement le code de votre application sans avoir besoin de reproduire le bogue ou l'erreur.
- Développer vos propres applications d'analyse et de visualisation – X-Ray fournit un ensemble d'API de requête que vous pouvez utiliser pour développer vos propres applications d'analyse et de visualisation qui utilisent les données enregistrées par X-Ray.
Concepts de base
Qu’est-ce qu’une trace ?
Une trace X-Ray est un ensemble de points de données qui partagent le même identifiant de trace. Par exemple, lorsqu'un client envoie une requête à votre application, un identifiant de trace unique est attribué à cette demande. Lorsque la requête parcourt les différents services dans votre application, les services relaient des informations concernant celle-ci à X-Ray à l'aide de son identifiant de trace unique. L'information relayée par chaque service de votre application à X-Ray est un segment. Une trace est un ensemble de segments.
Qu’est-ce qu’un segment ?
Un segment X-Ray englobe tous les points de données pour un composant unique (ex. : un service d'autorisation) de l'application distribuée. Les segments incluent des données définies par le système et par les utilisateurs sous la forme d'annotations. Ils sont composés d'un ou plusieurs sous-segments représentant les appels à distance effectués depuis le service. Par exemple, lorsque votre application effectue un appel à une base de données en réponse à une requête, elle crée un segment pour cette requête, ainsi qu'un sous-segment représentant l'appel à la base de données et son résultat. Le sous-segment peut contenir des données comme la requête, la table utilisée, l'horodatage et le statut d'erreur.
Qu’est-ce qu’une annotation ?
Une annotation X-Ray correspond à des données définies par le système ou par l'utilisateur et associées à un segment. Un segment peut contenir plusieurs annotations. Parmi les annotations définies par le système, on trouve notamment les données ajoutées au segment par les services AWS. Les annotations définies par l'utilisateur sont, quant à elles, des métadonnées ajoutées à un segment par un développeur. Par exemple, lorsqu'un segment est créé par votre application, les données de région pour les appels de services AWS peuvent être automatiquement ajoutées à celui-ci. Vous pouvez également choisir d'ajouter les données de région vous-même pour les appels à des services autres que ceux d'AWS.
Qu’est-ce qu’une erreur ?
Les erreurs X-Ray sont des annotations système associées à un segment et correspondant à un appel renvoyant une réponse d'erreur. L'erreur est composée du message d'erreur, de la trace du stack et de toute information supplémentaire (par exemple, version ou ID de validation) permettant d'associer l'erreur à un fichier source.
Qu’est-ce que l’échantillonnage ?
Pour offrir une expérience performante et économique, X-Ray ne collecte pas les données de toutes les requêtes envoyées à une application. Au lieu de cela, il collecte les données pour un nombre de requêtes significatif d'un point de vue statistique. X-Ray ne doit pas être utilisé comme un outil d'audit ou de conformité, car il ne garantit pas l'exhaustivité des données.
Qu’est-ce que le démon X-Ray ?
Le démon X-Ray collecte les traces et les envoie au service X-Ray pour agrégation, analyse et stockage. Le démon vous permet d'envoyer plus facilement des données au service X-Ray, au lieu d'utiliser directement les API.
Utilisation d'AWS X-Ray
Comment démarrer avec X-Ray ?
Vous pouvez démarrer avec X-Ray en incluant le kit SDK du langage X-Ray dans votre application et en installant le démon X-Ray. Pour en savoir plus, consultez le guide de l'utilisateur de X-Ray.
Quels types d’applications puis-je utiliser avec X-Ray ?
X-Ray peut être utilisé avec des applications distribuées de n'importe quelle taille, afin de suivre et de déboguer aussi bien des requêtes synchrones que des événements asynchrones. Par exemple, X-Ray peut être utilisé pour suivre des requêtes Web adressées à une application Web ou des événements asynchrones utilisant les files d'attente Amazon SQS.
Quels services AWS puis-je utiliser avec X-Ray ?
Vous pouvez utiliser X-Ray avec les applications exécutées sur EC2, ECS, Lambda, Amazon SQS, Amazon SNS et Elastic Beanstalk. En outre, le kit SDK X-Ray capture automatiquement les métadonnées des appels d'API aux services AWS effectués à l'aide du kit SDK AWS. Le kit SDK de X-Ray fournit également des modules complémentaires pour les pilotes MySQL et PostgreSQL.
Quelles modifications dois-je apporter au code de mon application pour utiliser X-Ray ?
Si vous utilisez Elastic Beanstalk, vous devrez inclure les bibliothèques X-Ray propres au langage dans le code de votre application. Pour les applications exécutées sur d'autres services AWS, comme EC2 ou ECS, vous devrez installer le démon X-Ray et instrumenter le code de votre application.
X-Ray fournit-il une API ?
Oui, X-Ray fournit un ensemble d'API pour l'ingestion des données de requête, l'interrogation de traces et la configuration du service. Vous pouvez utiliser l'API X-Ray pour développer des applications d'analyse et de visualisation en plus de celles fournies par X-Ray.
Est-ce qu’AWS X-Ray enregistre les événements sur AWS CloudTrail ?
Oui. X-Ray enregistre tous les appels d’API en tant qu’événements de gestion. Il enregistre également les appels sur les traces en tant qu’événements de données, notamment sur PutTraceSegments et GetTimeSeriesServiceStatistics, entre autres API. Les événements liés aux données ne sont pas enregistrés par défaut. Pour enregistrer les événements liés aux données, vous devez configurer votre historique CloudTrail ou votre magasin de données d’événements pour les collecter.
Régions
Dans quelles régions la fonctionnalité X-Ray est-elle disponible ?
Consultez la section Produits et services régionaux pour en savoir plus.
Puis-je utiliser X-Ray pour suivre des requêtes issues d’applications ou de services étalés sur plusieurs régions ?
Oui, vous pouvez utiliser X-Ray pour suivre les requêtes qui circulent dans des applications ou services étalés sur plusieurs régions. Les données X-Ray sont stockées au niveau local pour la région traitée, mais incluent suffisamment d'informations pour permettre aux applications clientes de combiner les données et d'offrir une visualisation globale des traces. L'annotation de région pour les services AWS sera ajoutée automatiquement. Toutefois, les clients devront instrumenter les services personnalisés pour ajouter l'annotation régionale, afin de tirer parti de la prise en charge inter-régions.
Gestion des données
Combien de temps faut-il pour que les données de trace soient disponibles dans X-Ray ?
Les données de trace envoyées à X-Ray peuvent généralement être récupérées et filtrées dans les 30 secondes suivant leur réception par le service.
Jusqu’où puis-je remonter pour interroger les données de trace ? Pendant combien de temps X-Ray conserve-t-il les données de trace ?
X-Ray conserve les données de trace des 30 derniers jours. Vous pouvez donc interroger les données de trace 30 jours en arrière.
Pourquoi vois-je parfois des traces partielles ?
X-Ray s'efforce de présenter des informations de trace complètes. Toutefois, dans certaines situations (problèmes de connectivité, retard de réception des segments, etc.), il est possible que les informations de trace fournies par les API de X-Ray soient partielles. Dans ces situations, X-Ray marque ces traces comme incomplètes ou partielles.
Mes composants d’application sont exécutés sur leurs propres comptes AWS. Puis-je utiliser X-Ray pour collecter des données dans plusieurs comptes AWS ?
Oui, le démon X-Ray peut assumer un rôle afin de publier des données dans un compte différent de celui dans lequel il est exécuté. Ceci vous permet de publier des données issues de différents composants de votre application dans un compte central.