在上執行 X-Ray 協助程式AWS Elastic Beanstalk - AWS X-Ray

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在上執行 X-Ray 協助程式AWS Elastic Beanstalk

將跟蹤數據從應用程序中繼到AWS X-Ray,您可以在 Elastic Beanstalk 環境的 Amazon EC2 執行個體上執行 X-Ray 協助程式。如需支援的平台清單,請參設定AWS X-Ray除錯中的AWS Elastic Beanstalk開發人員指南

注意

精靈會使用您環境的執行個體描述檔以獲得許可。如需將許可新增至 Elastic Beanstalk 執行個體組態檔的説明,請參授予守護進程將數據發送到 X-Ray 的權限

Elastic Beanstalk 平台提供組態選項,您可以設定自動執行精靈。您可以在您來源碼的組態檔中啟用精靈,或是在 Elastic Beanstalk 主控台中選擇選項來啟用。當您啟用組態選項時,精靈便會在執行個體上安裝並做為服務執行。

Elastic Beanstalk 平台上包含的版本可能並非最新版本。請參閱支援的平台主題以了解您平台組態可使用的精靈版本。

Elastic Beanstalk 不會在 Multicontainer Docker (Amazon ECS) 平台上提供 X-Ray 協助程式。

使用 Elastic Beanstalk X-Ray 精靈

使用主控台開啟 X-Ray 集成,或是使用組態檔,在您的應用程式來源碼中設定它。

在 Elastic Beanstalk 主控台中啟用 X-Ray 協助程式
  1. 開啟Elastic Beanstalk 主控台

  2. 導覽至 。管理主控台適用於您的環境。

  3. 選擇 Configuration (組態)

  4. 選擇 Software Settings (軟體設定)

  5. 針對 X-Ray daemon (X-Ray 精靈),請選擇 Enabled (啟用)

  6. 選擇 Apply (套用)。

您可以在您的來源碼中包含組態檔,來在環境間攜帶您的組態。

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

Elastic Beanstalk 會將組態檔傳遞至精靈,並將日誌輸出至標準位置。

Windows Server 平台
  • 組態檔案C:\Program Files\Amazon\XRay\cfg.yaml

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

Linux 平台
  • 組態檔案/etc/amazon/xray/cfg.yaml

  • 日誌/var/log/xray/xray.log

Elastic Beanstalk 提供從AWS Management Console或命令列。您可以透過使用組態檔新增任務,來告知 Elastic Beanstalk 包含 X-Ray 協助程式日誌。

範例 .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
範例 .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

請參閱從 Elastic Beanstalk 環境的 Amazon EC2 執行個體查看日誌中的AWS Elastic Beanstalk開發人員指南以了解詳細資訊。

手動下載 X-Ray 協助程式(高級)

如果 X-Ray 協助程式不適用於您的平台組態,您可以從 Amazon S3 下載它並使用組態檔執行它。

使用 Elastic Beanstalk 組態檔下載及執行精靈。

範例 .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
範例 .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

這些範例也會將精靈的日誌檔新增至 Elastic Beanstalk 尾日誌任務,使其在您透過主控台或 Elastic Beanstalk 命令列界面 (EB CLI) 請求日誌時包含在其中。