Exécution du daemon X-Ray en local - 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.

Exécution du daemon X-Ray en local

Vous pouvez exécuter le AWS X-Ray démon localement sous Linux, macOS, Windows ou dans un conteneur Docker. Exécutez le daemon pour transmettre les données de suivi à X-Ray lorsque vous développez et testez votre application instrumentée. Téléchargez et extrayez le démon en utilisant les instructions indiquées ici.

Lorsqu'il est exécuté localement, le démon peut lire les informations d'identification à partir d'un fichier d'informations d'identification du AWS SDK (.aws/credentialsdans votre répertoire utilisateur) ou à partir de variables d'environnement. Pour plus d’informations, consultez Autoriser le daemon à envoyer des données à X-Ray.

Le démon écoute les données UDP sur le port 2000. Vous pouvez modifier le port et les autres options à l'aide d'un fichier de configuration et des options de ligne de commande. Pour plus d’informations, consultez Configuration du AWS X-Ray daemon.

Exécution du daemon X-Ray sous Linux

Vous pouvez exécuter l'exécutable du démon à partir de la ligne de commande. Utilisez l'option -o pour l'exécuter en mode local et -n pour définir la région.

~/xray-daemon$ ./xray -o -n us-east-2

Pour exécuter le démon en arrière-plan, utilisez &.

~/xray-daemon$ ./xray -o -n us-east-2 &

Terminez un processus démon en cours d'exécution en arrière-plan avec pkill.

~$ pkill xray

Exécution du daemon X-Ray dans un conteneur Docker

Pour exécuter le démon en local dans un conteneur Docker, enregistrez le texte suivant dans un fichier nommé Dockerfile. Téléchargez l'image d'exemple complète sur Amazon ECR. Consultez la section Téléchargement du daemon pour plus d'informations.

Exemple Dockerfile — Amazon Linux
FROM amazonlinux RUN yum install -y unzip RUN curl -o daemon.zip https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip RUN unzip daemon.zip && cp xray /usr/bin/xray ENTRYPOINT ["/usr/bin/xray", "-t", "0.0.0.0:2000", "-b", "0.0.0.0:2000"] EXPOSE 2000/udp EXPOSE 2000/tcp

Générez l'image de conteneur avec docker build.

~/xray-daemon$ docker build -t xray-daemon .

Exécutez l'image dans un conteneur avec docker run.

~/xray-daemon$ docker run \ --attach STDOUT \ -v ~/.aws/:/root/.aws/:ro \ --net=host \ -e AWS_REGION=us-east-2 \ --name xray-daemon \ -p 2000:2000/udp \ xray-daemon -o

Cette commande utilise les options suivantes :

  • --attach STDOUT— Affiche le résultat du démon dans le terminal.

  • -v ~/.aws/:/root/.aws/:ro— Donnez au conteneur un accès en lecture seule au .aws répertoire pour lui permettre de lire vos informations d'identification du AWS SDK.

  • AWS_REGION=us-east-2— Définissez la variable d'AWS_REGIONenvironnement pour indiquer au démon la région à utiliser.

  • --net=host— Connectez le conteneur au host réseau. Les conteneurs sur le réseau hôte peuvent communiquer entre eux sans publication des ports.

  • -p 2000:2000/udp— Mappez le port UDP 2000 de votre machine au même port du conteneur. Ceci n'est pas requis pour que les conteneurs figurant sur le même réseau communiquent, mais cela vous permet d'envoyer des segments au démon à partir de la ligne de commande ou à partir d'une application qui ne s'exécute pas dans Docker.

  • --name xray-daemon— Nommez le conteneur xray-daemon au lieu de générer un nom aléatoire.

  • -o(après le nom de l'image) — Ajoutez l'-ooption au point d'entrée qui exécute le démon dans le conteneur. Cette option indique au démon de s'exécuter en mode local pour l'empêcher d'essayer de lire les métadonnées de l'instance Amazon EC2.

Pour arrêter le démon, utilisez docker stop. Si vous apportez des modifications au fichier Dockerfile et que vous générez une nouvelle image, vous devez supprimer le conteneur existant pour pouvoir en créer un autre avec le même nom. Utilisez docker rm pour supprimer le conteneur.

$ docker stop xray-daemon $ docker rm xray-daemon

Exécution du daemon X-Ray sous Windows

Vous pouvez exécuter l'exécutable du démon à partir de la ligne de commande. Utilisez l'option -o pour l'exécuter en mode local et -n pour définir la région.

> .\xray_windows.exe -o -n us-east-2

Utilisez un PowerShell script pour créer et exécuter un service pour le démon.

Exemple PowerShell script - Windows
if ( Get-Service "AWSXRayDaemon" -ErrorAction SilentlyContinue ){ sc.exe stop AWSXRayDaemon sc.exe delete AWSXRayDaemon } if ( Get-Item -path aws-xray-daemon -ErrorAction SilentlyContinue ) { Remove-Item -Recurse -Force aws-xray-daemon } $currentLocation = Get-Location $zipFileName = "aws-xray-daemon-windows-service-3.x.zip" $zipPath = "$currentLocation\$zipFileName" $destPath = "$currentLocation\aws-xray-daemon" $daemonPath = "$destPath\xray.exe" $daemonLogPath = "C:\inetpub\wwwroot\xray-daemon.log" $url = "https://s3.dualstack.us-west-2.amazonaws.com/aws-xray-assets.us-west-2/xray-daemon/aws-xray-daemon-windows-service-3.x.zip" Invoke-WebRequest -Uri $url -OutFile $zipPath Add-Type -Assembly "System.IO.Compression.Filesystem" [io.compression.zipfile]::ExtractToDirectory($zipPath, $destPath) sc.exe create AWSXRayDaemon binPath= "$daemonPath -f $daemonLogPath" sc.exe start AWSXRayDaemon

Exécution du daemon X-Ray sous OS X

Vous pouvez exécuter l'exécutable du démon à partir de la ligne de commande. Utilisez l'option -o pour l'exécuter en mode local et -n pour définir la région.

~/xray-daemon$ ./xray_mac -o -n us-east-2

Pour exécuter le démon en arrière-plan, utilisez &.

~/xray-daemon$ ./xray_mac -o -n us-east-2 &

Utilisez nohup pour empêcher la mise hors service du démon lorsque le terminal est fermé.

~/xray-daemon$ nohup ./xray_mac &