本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS Distro for OpenTelemetry (ADOT) SDKs 匯出無收集器追蹤
您可以使用 ADOT SDKs進行無收集,並將追蹤直接傳送到 OTLP 端點 (用於追蹤)。
根據預設,當您啟用交易搜尋時,會啟用 Application Signals。 AWS Distro for OpenTelemetry 不支援 Application Signals,且必須停用。
先決條件
確定已啟用交易搜尋以傳送跨度至 X-Ray OTLP 端點。如需詳細資訊,請參閱交易搜尋入門。
設定 Amazon EC2 的 IAM 許可
請依照下列步驟,將 AWSXrayWriteOnlyPolicy
IAM 政策連接至 Amazon EC2 執行個體的 IAM 角色:
設定內部部署主機的 IAM 許可
請依照下列步驟建立 IAM 使用者,可用來提供許可給現場部署主機。
透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。
選擇使用者,然後選擇建立使用者。
-
選擇使用者、建立使用者。
-
在使用者詳細資訊的使用者名稱下,輸入新 IAM 使用者的名稱。這是 的登入名稱 AWS ,將用於驗證您的主機。
-
選擇下一步。
-
在設定許可頁面的許可選項下,選取直接連接政策。
-
從許可政策清單中,選取要新增至使用者AWSXrayWriteOnlyPolicy
的政策。
-
選擇下一步。
-
在檢閱和建立頁面上,確定您對使用者名稱感到滿意,且AWSXrayWriteOnlyPolicy
政策位於許可摘要下。
-
選擇 Create user (建立使用者)。
-
建立和擷取您的 AWS 存取金鑰和私密金鑰:
-
在 IAM 主控台的導覽窗格中,選擇使用者,然後選取您在上一個步驟中建立的使用者名稱。
-
在使用者頁面上,選擇安全登入資料索引標籤。
-
在存取金鑰區段下,選擇建立存取金鑰。
-
針對建立存取金鑰步驟 1,請選擇命令列界面 (CLI)。
-
對於建立存取金鑰步驟 2,選擇性地輸入標籤,然後選擇下一步。
-
針對建立存取金鑰步驟 3,選取下載 .csv 檔案,以使用 IAM 使用者的存取金鑰和私密存取金鑰儲存 .csv 檔案。後續步驟需要此資訊。
-
選擇完成。
-
輸入下列命令,在現場部署主機中設定您的 AWS 登入資料。SECRET_ACCESS_ID
將 ACCESS_KEY_ID
和 取代為您在上一個步驟中下載的 .csv 檔案中新產生的存取金鑰和私密存取金鑰。
$ aws configure
AWS Access Key ID [None]: ACCESS_KEY_ID
AWS Secret Access Key [None]: SECRET_ACCESS_ID
Default region name [None]: MY_REGION
Default output format [None]: json
啟用 ADOT SDKs
您可以啟用追蹤,讓您的應用程式直接從 Java、Node.js、Python 和 .Net 上的 AWS Distro for OpenTelemetry (ADOT) SDK 直接傳送至 OTLP 端點。
- Java
-
-
下載最新版本的 AWS Distro for OpenTelemetry Java 自動檢測代理程式。您可以使用此命令下載最新版本:
curl -L -O https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar
若要檢視所有發行版本,請參閱 aws-otel-java-instrumentation 版本。
若要啟用直接將追蹤傳送至 X-Ray OTLP 追蹤端點的匯出工具,並最佳化優點,請在啟動應用程式之前使用環境變數來提供其他資訊。
對於 OTEL_RESOURCE_ATTRIBUTES
變數,請將下列資訊指定為索引鍵/值對:
(選用) service.name
設定服務的名稱。這會在 Application Signals 儀表板中顯示為您的應用程式的服務名稱。當您未提供此金鑰的值時,UnknownService
會使用 的預設值。
(選用) deployment.environment
設定應用程式執行所在的環境。這將顯示為您應用程式的託管環境。當您未指定此值時,會使用下列其中一個預設值:
-
如果這是屬於 Auto Scaling 群組的執行個體,則會將其設定為 ec2:name-of-Auto-Scaling-group
-
如果這是不屬於 Auto Scaling 群組的 Amazon EC2 執行個體,則會將其設定為 ec2:default
-
如果這是內部部署主機,則會將其設定為 generic:default
此環境變數僅供 Application Signals 使用,並轉換為 X-Ray 追蹤註釋和 CloudWatch 指標維度
針對 OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
變數,指定 X-Ray OTLP 追蹤端點:https://xray.[AWSRegion
].amazonaws.com/v1/traces
。例如:
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
針對 JAVA_TOOL_OPTIONS
變數,指定存放 AWS Distro for OpenTelemetry Java 自動檢測代理程式的路徑。
export JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH"
例如:
export AWS_ADOT_JAVA_INSTRUMENTATION_PATH="./aws-opentelemetry-agent.jar"
對於 OTEL_METRICS_EXPORTER
變數,建議將值設定為無。
對於 OTEL_LOGS_EXPORTER
變數,建議將值設定為無。
對於 OTEL_TRACES_EXPORTER
變數,您必須設定 的值 otlp
(這是選用的,如果未設定此環境變數,則為預設值)。
對於 OTEL_EXPORTER_OTLP_PROTOCOL
變數,您必須將 值設定為 http/protobuf
(這是選用的,如果未設定此環境變數,則為預設值)。X-Ray OTLP 端點目前僅支援 HTTP 通訊協定。
您的應用程式現在應該使用 AWS Distro for OpenTelemetry Java 檢測執行,並會產生跨度。這些範圍會儲存在您帳戶中的 aws/spans
CloudWatch LogsLogGroup 中。您也可以在 CloudWatch Traces and Metrics 主控台中檢視與您的範圍相關的追蹤和指標。
使用您設定的環境變數啟動應用程式。以下是啟動指令碼的範例。
(注意:下列組態僅支援適用於 Java 的 AWS Distro for OpenTelemetry 自動檢測代理程式的 1.32.2 版和更新版本。)
JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
java -jar $MY_JAVA_APP.jar
- Node.js
-
下載適用於 Node.js 的 AWS Distro for OpenTelemetry JavaScript 自動檢測代理程式的最新版本。您可以使用 命令來安裝 :
npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation
若要檢視所有發行版本的相關資訊,請參閱 AWS Distro for OpenTelemetry JavaScript 檢測。
若要啟用直接將追蹤傳送至 X-Ray OTLP 端點的匯出工具,並最佳化優點,請在啟動應用程式之前使用環境變數來提供其他資訊。
對於 OTEL_RESOURCE_ATTRIBUTES
變數,請將下列資訊指定為索引鍵/值對:
(選用) service.name
設定服務的名稱。這會在 Application Signals 儀表板中顯示為您的應用程式的服務名稱。當您未提供此金鑰的值時,UnknownService
會使用 的預設值。
(選用) deployment.environment
設定應用程式執行所在的環境。這將顯示為 Application Signals 儀表板中應用程式的 Hosted In 環境。當您未指定此變數時,會使用下列其中一個預設值:
-
如果這是屬於 Auto Scaling 群組的執行個體,則會將其設定為 ec2:name-of-Auto-Scaling-group
-
如果這是不屬於 Auto Scaling 群組的 Amazon EC2 執行個體,則會將其設定為 ec2:default
-
如果這是內部部署主機,則會將其設定為 generic:default
此環境變數僅供 Application Signals 使用,並轉換為 X-Ray 追蹤註釋和 CloudWatch 指標維度。
針對 OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
變數,指定 X-Ray OTLP 追蹤端點:https://xray.[AWSRegion
].amazonaws.com/v1/traces
。
例如:
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
對於 OTEL_METRICS_EXPORTER
變數,建議將值設定為無。Application Signals 指標是由 OTLP 端點產生。
對於 OTEL_LOGS_EXPORTER
變數,建議將值設定為無。
對於 OTEL_TRACES_EXPORTER
變數,您必須設定 的值 otlp
(這是選用的,如果未設定此環境變數,則為預設值)。
對於 OTEL_EXPORTER_OTLP_PROTOCOL
變數,您必須將 值設定為 http/protobuf
(這是選用的,如果未設定此環境變數,則為預設值)。X-Ray OTLP 端點目前僅支援 HTTP 通訊協定。
您的應用程式現在應該使用 AWS Distro for OpenTelemetry Java 檢測執行,並會產生跨度。這些範圍會儲存在您帳戶中的 aws/spans
CloudWatch LogsLogGroup 中。您也可以在 CloudWatch Traces and Metrics 主控台中檢視與您的範圍相關的追蹤和指標。
使用您設定的環境變數啟動應用程式。以下是啟動指令碼的範例。
(注意:將 $SVC_NAME
取代為您的應用程式名稱。這會顯示為應用程式的名稱。
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME
" \
node —require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
- Python
-
下載最新版本的 AWS Distro for OpenTelemetry Python 自動檢測代理程式。您可以使用 命令來安裝 :
pip install aws-opentelemetry-distro
若要讓匯出程式直接傳送追蹤到 X-Ray OTLP 端點並最佳化優點,請在啟動應用程式之前使用環境變數來提供其他資訊。
對於 OTEL_RESOURCE_ATTRIBUTES
變數,請將下列資訊指定為索引鍵/值對:
(選用) service.name
設定服務的名稱。這會在 Application Signals 儀表板中顯示為您的應用程式的服務名稱。當您未提供此金鑰的值時,UnknownService
會使用 的預設值。
(選用) deployment.environment
設定應用程式執行所在的環境。這將顯示為 Application Signals 儀表板中應用程式的 Hosted In 環境。當您未指定此值時,會使用下列其中一個預設值:
-
如果這是屬於 Auto Scaling 群組的執行個體,則會將其設定為 ec2:name-of-Auto-Scaling-group
-
如果這是不屬於 Auto Scaling 群組的 Amazon EC2 執行個體,則會將其設定為 ec2:default
-
如果這是內部部署主機,則會將其設定為 generic:default
此環境變數僅供 Application Signals 使用,並轉換為 X-Ray 追蹤註釋和 CloudWatch 指標維度。
針對 OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
變數,指定 X-Ray OTLP 追蹤端點:https://xray.[AWSRegion
].amazonaws.com/v1/traces
。
例如:
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
對於 OTEL_METRICS_EXPORTER
變數,建議將值設定為無。Application Signals 指標是由 OTLP 端點產生。
對於 OTEL_LOGS_EXPORTER
變數,建議將值設定為無。
對於 OTEL_TRACES_EXPORTER
變數,您必須設定 的值 otlp
(這是選用的,如果未設定此環境變數,則為預設值)。
對於 OTEL_EXPORTER_OTLP_PROTOCOL
變數,您必須將 值設定為 http/protobuf
(這是選用的,如果未設定此環境變數,則為預設值)。X-Ray OTLP 端點目前僅支援 HTTP 通訊協定。
您的應用程式現在應該使用 AWS Distro for OpenTelemetry Java 檢測執行,並會產生跨度。這些範圍會儲存在您帳戶中的 aws/spans
CloudWatch LogsLogGroup 中。您也可以在 CloudWatch Traces and Metrics 主控台中檢視與您的範圍相關的追蹤和指標。
使用您設定的環境變數啟動應用程式。以下是啟動指令碼的範例。
(注意:將 $SVC_NAME
取代為您的應用程式名稱,並將 $PYTHON_APP
取代為您的應用程式的位置和名稱。
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_PYTHON_DISTRO=aws_distro \
OTEL_PYTHON_CONFIGURATOR=aws_configurator \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME
" \
opentelemetry-instrument python $MY_PYTHON_APP
.py
- .Net
-
若要啟用直接將追蹤傳送至 X-Ray OTLP 追蹤端點的匯出程式,並最佳化優點,請在啟動應用程式之前設定環境變數以提供其他資訊。這些變數也是設定 .NET 檢測的必要變數。
在OTEL_RESOURCE_ATTRIBUTES
環境變數dotnet-service-name
中,將 取代為您選擇的服務名稱。
設定 OTEL_TRACES_EXPORTER=none
。
設定 OTEL_AWS_SIG_V4_ENABLED=true
。
Linux 的範例。
export INSTALL_DIR=OpenTelemetryDistribution
export CORECLR_ENABLE_PROFILING=1
export CORECLR_PROFILER={918728DD-259F-4A6A-AC2B-B85E1B658318}
export CORECLR_PROFILER_PATH=${INSTALL_DIR}/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so
export DOTNET_ADDITIONAL_DEPS=${INSTALL_DIR}/AdditionalDeps
export DOTNET_SHARED_STORE=${INSTALL_DIR}/store
export DOTNET_STARTUP_HOOKS=${INSTALL_DIR}/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll
export OTEL_DOTNET_AUTO_HOME=${INSTALL_DIR}
export OTEL_DOTNET_AUTO_PLUGINS="AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation"
export OTEL_TRACES_EXPORTER=none
export OTEL_AWS_SIG_V4_ENABLED=true
export OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
export OTEL_METRICS_EXPORTER=none
export OTEL_LOGS_EXPORTER=none
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
Windows Server 的範例。
$env:INSTALL_DIR = "OpenTelemetryDistribution"
$env:CORECLR_ENABLE_PROFILING = 1
$env:CORECLR_PROFILER = "{918728DD-259F-4A6A-AC2B-B85E1B658318}"
$env:CORECLR_PROFILER_PATH = Join-Path $env:INSTALL_DIR "win-x64/OpenTelemetry.AutoInstrumentation.Native.dll"
$env:DOTNET_ADDITIONAL_DEPS = Join-Path $env:INSTALL_DIR "AdditionalDeps"
$env:DOTNET_SHARED_STORE = Join-Path $env:INSTALL_DIR "store"
$env:DOTNET_STARTUP_HOOKS = Join-Path $env:INSTALL_DIR "net/OpenTelemetry.AutoInstrumentation.StartupHook.dll"
$env:OTEL_DOTNET_AUTO_HOME = $env:INSTALL_DIR
$env:OTEL_DOTNET_AUTO_PLUGINS = "AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation"
$env:OTEL_TRACES_EXPORTER=none
$env:OTEL_AWS_SIG_V4_ENABLED=true
$env:OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
$env:OTEL_METRICS_EXPORTER=none
$env:OTEL_LOGS_EXPORTER=none
$env:OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
$env:OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
使用環境變數啟動應用程式。
(選用) 或者,您可以使用提供的安裝指令碼來協助安裝和設定 AWS Distro for OpenTelemetry .NET 自動檢測套件。
對於 Linux,請從 GitHub 版本頁面下載並安裝 Bash 安裝指令碼:
# Download and Install
curl -L -O https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/aws-otel-dotnet-install.sh
chmod +x ./aws-otel-dotnet-install.sh
./aws-otel-dotnet-install.sh
# Instrument
. $HOME/.otel-dotnet-auto/instrument.shexport OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
對於 Windows Server,請從 GitHub 版本頁面下載並安裝 PowerShell 安裝指令碼:
# Download and Install
$module_url = "https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/AWS.Otel.DotNet.Auto.psm1"
$download_path = Join-Path $env:temp "AWS.Otel.DotNet.Auto.psm1"
Invoke-WebRequest -Uri $module_url -OutFile $download_path
Import-Module $download_path
Install-OpenTelemetryCore
# Instrument
Import-Module $download_path
Register-OpenTelemetryForCurrentSession -OTelServiceName "dotnet-service-name"
Register-OpenTelemetryForIIS
您可以在官方 NuGet 儲存庫中找到 AWS Distro for OpenTelemetry .NET 自動檢測套件的 NuGet 套件。請務必檢查 README 檔案以取得指示。