Ejecución del daemon de X-Ray en AWS Elastic Beanstalk - AWS X-Ray

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejecución del daemon de X-Ray en AWS Elastic Beanstalk

Para retransmitir los datos de rastreo desde su aplicación a AWS X-Ray, puede ejecutar el daemon de X-Ray en instancias de Amazon EC2 de su entorno de Elastic Beanstalk. Para ver una lista de plataformas compatibles, consulte Configuración de la depuración en AWS X-Ray en la Guía para desarrolladores de AWS Elastic Beanstalk.

nota

El daemon utiliza el perfil de instancia del entorno para obtener permisos. Para obtener instrucciones sobre cómo añadir permisos al perfil de instancia de Elastic Beanstalk, consulte Permiso para el envío de datos a X-Ray desde el daemon.

Las plataformas de Elastic Beanstalk proporcionan una opción de configuración que puede establecer para ejecutar el daemon de forma automática. Puede habilitar el daemon en un archivo de configuración en el código fuente o mediante la opción disponible en la consola de Elastic Beanstalk. Cuando habilita la opción de configuración, el demonio se instala en la instancia y se ejecuta como servicio.

Es posible que la versión incluida en las plataformas de Elastic Beanstalk no sea la versión más reciente. Consulte Plataformas compatibles para ver qué versión del demonio está disponible para la configuración de la plataforma que utiliza.

Elastic Beanstalk no proporciona el daemon X-Ray en la plataforma Multicontainer Docker (Amazon ECS).

Uso de la integración de X-Ray de Elastic Beanstalk para ejecutar el daemon de X-Ray

Utilice la consola para activar la integración de X-Ray o configúrela en el código fuente de la aplicación con un archivo de configuración.

Para habilitar el daemon de X-Ray en la consola de Elastic Beanstalk:
  1. Abra la consola de Elastic Beanstalk.

  2. Desplácese hasta la consola de administración del entorno.

  3. Elija Configuration (Configuración).

  4. Elija Software Settings (Configuración de software).

  5. En X-Ray daemon (Demonio de X-Ray), elija Enabled (Habilitado).

  6. Seleccione Apply (Aplicar).

Puede incluir un archivo de configuración en el código fuente para que la configuración sea portátil entre entornos.

ejemplo .ebextensions/xray-daemon.config
option_settings: aws:elasticbeanstalk:xray: XRayEnabled: true

Elastic Beanstalk transfiere un archivo de configuración al daemon y envía los registros a una ubicación estándar.

En plataformas Windows Server
  • Archivo de configuración: C:\Program Files\Amazon\XRay\cfg.yaml

  • Registros: c:\Program Files\Amazon\XRay\logs\xray-service.log

En plataformas Linux
  • Archivo de configuración: /etc/amazon/xray/cfg.yaml

  • Registros: /var/log/xray/xray.log

Elastic Beanstalk proporciona herramientas para extraer registros de instancias de la AWS Management Console o de la línea de comandos. Puede indicar a Elastic Beanstalk que incluya los registros del daemon de X-Ray añadiendo una tarea con un archivo de configuración.

ejemplo .ebextensions/xray-logs.config - Linux
files: "/opt/elasticbeanstalk/tasks/taillogs.d/xray-daemon.conf" : mode: "000644" owner: root group: root content: | /var/log/xray/xray.log
ejemplo .ebextensions/xray-logs.config: Windows Server
files: "c:/Program Files/Amazon/ElasticBeanstalk/config/taillogs.d/xray-daemon.conf" : mode: "000644" owner: root group: root content: | c:\Progam Files\Amazon\XRay\logs\xray-service.log

Consulte la sección Consulta de los registros desde las instancias de Amazon EC2 del entorno de Elastic Beanstalk en la Guía para desarrolladores de AWS Elastic Beanstalk para obtener más información.

Descarga y ejecución del daemon de X-Ray manualmente (avanzado)

Si el daemon de X-Ray no está disponible para la configuración de la plataforma, puede descargarlo desde Amazon S3 y ejecutarlo con un archivo de configuración.

Utilice un archivo de configuración de Elastic Beanstalk para descargar y ejecutar el daemon.

ejemplo .ebextensions/xray.config - Linux
commands: 01-stop-tracing: command: yum remove -y xray ignoreErrors: true 02-copy-tracing: command: curl https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.rpm -o /home/ec2-user/xray.rpm 03-start-tracing: command: yum install -y /home/ec2-user/xray.rpm files: "/opt/elasticbeanstalk/tasks/taillogs.d/xray-daemon.conf" : mode: "000644" owner: root group: root content: | /var/log/xray/xray.log "/etc/amazon/xray/cfg.yaml" : mode: "000644" owner: root group: root content: | Logging: LogLevel: "debug" Version: 2
ejemplo .ebextensions/xray.config: Windows Server
container_commands: 01-execute-config-script: command: Powershell.exe -ExecutionPolicy Bypass -File c:\\temp\\installDaemon.ps1 waitAfterCompletion: 0 files: "c:/temp/installDaemon.ps1": content: | if ( Get-Service "AWSXRayDaemon" -ErrorAction SilentlyContinue ) { sc.exe stop AWSXRayDaemon sc.exe delete AWSXRayDaemon } $targetLocation = "C:\Program Files\Amazon\XRay" if ((Test-Path $targetLocation) -eq 0) { mkdir $targetLocation } $zipFileName = "aws-xray-daemon-windows-service-3.x.zip" $zipPath = "$targetLocation\$zipFileName" $destPath = "$targetLocation\aws-xray-daemon" if ((Test-Path $destPath) -eq 1) { Remove-Item -Recurse -Force $destPath } $daemonPath = "$destPath\xray.exe" $daemonLogPath = "$targetLocation\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) New-Service -Name "AWSXRayDaemon" -StartupType Automatic -BinaryPathName "`"$daemonPath`" -f `"$daemonLogPath`"" sc.exe start AWSXRayDaemon encoding: plain "c:/Program Files/Amazon/ElasticBeanstalk/config/taillogs.d/xray-daemon.conf" : mode: "000644" owner: root group: root content: | C:\Program Files\Amazon\XRay\xray-daemon.log

Estos ejemplos también añaden el archivo de registro del daemon a la tarea de registros de finalización de Elastic Beanstalk para incluirlo cuando se soliciten registros con la consola o la interfaz de línea de comandos de Elastic Beanstalk (CLI de EB).