本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon 上啟用應用程式訊號 EC2
對於在 Amazon EC2或其他執行個體類型上執行的應用程式,您可以 OpenTelemetry 自行安裝和設定 CloudWatch 代理程式和 AWS Distro。在使用自訂 Application Signals 設定啟用的這些架構上,Application Signals 不會自動探索您的服務或其執行所在的叢集或主機的名稱。您必須在自訂設定期間指定這些名稱,而您指定的名稱是顯示在 Application Signals 儀表板中的名稱。
本節中的指示適用於 Java、Python 和 .NET 應用程式。這些步驟已在 Amazon EC2執行個體上進行測試,但也預期可在支援 AWS Distro for 的其他架構上運作 OpenTelemetry。
需求
如果您已將 OpenTelemetry 與要為 Application Signals 啟用的應用程式搭配使用,請在啟用 Application Signals OpenTelemetry 相容性考量之前參閱 。
步驟 1:在您的帳戶中啟用 Application Signals
如果尚未在此帳戶中啟用 Application Signals,則必須授予 Application Signals 所需的許可,以探索您的服務。為此,請執行下列操作。您的帳戶只需執行一次此操作。
步驟 2:下載並啟動 CloudWatch 代理程式
在 Amazon EC2執行個體或內部部署主機上安裝 CloudWatch 代理程式作為啟用 Application Signals 的一部分
將最新版的 CloudWatch 代理程式下載至執行個體。如果執行個體已安裝 CloudWatch 代理程式,您可能需要更新它。只有 2023 年 11 月 30 日或更新版本發行的代理程式版本支援 CloudWatch Application Signals。
如需下載 CloudWatch 代理程式的相關資訊,請參閱 下載 CloudWatch 代理程式套件。
啟動 CloudWatch 代理程式之前,請將其設定為啟用 Application Signals。下列範例是 CloudWatch 代理程式組態,可為EC2主機上的指標和追蹤啟用 Application Signals。
建議您將此檔案放置在 Linux 系統上 /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
的 。
{
"traces": {
"traces_collected": {
"application_signals": {}
}
},
"logs": {
"metrics_collected": {
"application_signals": {}
}
}
}
將CloudWatchAgentServerPolicyIAM政策連接至 Amazon EC2執行個體IAM的角色。如需內部部署主機的許可,請參閱 內部部署伺服器的許可。
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/。
選擇角色並尋找 Amazon EC2執行個體使用的角色。然後選擇該角色的名稱。
在許可索引標籤中,依序選擇新增許可、附接政策。
尋找 CloudWatchAgentServerPolicy。如有需要,請使用搜尋方塊。然後,選取該政策的核取方塊,並選擇新增許可。
輸入下列命令以啟動 CloudWatch 代理程式。Replace (取代) agent-config-file-path
代理 CloudWatch 程式組態檔案的路徑,例如 ./amazon-cloudwatch-agent.json
。必須包含如下所示的 file:
字首。
export CONFIG_FILE_PATH=./amazon-cloudwatch-agent.json
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 -s -c file:agent-config-file-path
內部部署伺服器的許可
對於內部部署主機,您需要為裝置提供 AWS 授權。
設定內部部署主機的許可
建立要用來提供許可給內部部署主機IAM的使用者:
在 開啟IAM主控台https://console.aws.amazon.com/iam/。
選擇使用者 ,建立使用者 。
在使用者詳細資訊 中,針對使用者名稱 輸入新IAM使用者的名稱。這是用於驗證主機 AWS 的登入名稱。然後選擇 Next (下一步)
在設定許可頁面的許可選項 下,選取直接連接政策 。
從許可政策清單中,選取要新增至使用者CloudWatchAgentServerPolicy的政策。然後選擇下一步。
在檢閱和建立頁面上,請確定您對使用者名稱滿意,且CloudWatchAgentServerPolicy政策位於許可摘要 中。
選擇建立使用者
建立和擷取您的 AWS 存取金鑰和私密金鑰:
在IAM主控台的導覽窗格中,選擇使用者,然後選擇您在上一個步驟中建立的使用者名稱。
在使用者頁面上,選擇安全憑證索引標籤。然後,在存取金鑰區段中,選擇建立存取金鑰 。
針對建立存取金鑰步驟 1,選擇命令列介面 (CLI)。
對於建立存取金鑰步驟 2,選擇性地輸入標籤,然後選擇下一步。
針對建立存取金鑰步驟 3,選取下載 .csv 檔案,以儲存具有IAM使用者存取金鑰和秘密存取金鑰的 .csv 檔案。您需要此資訊才能進行後續步驟。
選擇完成。
輸入下列命令,在內部部署主機中設定您的 AWS 憑證。Replace (取代) ACCESS_KEY_ID
以及 SECRET_ACCESS_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
步驟 3:檢測您的應用程式並啟動它
下一步是測試 Application Signals CloudWatch 的應用程式。
- Java
-
在 Amazon EC2執行個體或內部部署主機上啟用 Application Signals 時,測試您的 Java 應用程式
下載最新版本的 AWS Distro for OpenTelemetry Java 自動儀器代理程式。可以使用此連結來下載最新版本。您可以在 aws-otel-java-instrumentation版本 中檢視所有發行版本的相關資訊。
若要最佳化 Application Signals 優勢,請在啟動應用程式之前,使用環境變數提供其他資訊。此資訊將顯示在 Application Signals 儀表板中。
對於 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
變數,指定要匯出追蹤URL的基本端點。 CloudWatch 代理程式公開 4316 作為其OTLP連接埠。在 Amazon 上EC2,由於應用程式與本機 CloudWatch 代理程式通訊,因此您應該將此值設定為 OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
針對OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
變數,指定要匯出URL指標的基本端點。 CloudWatch 代理程式公開 4316 作為其OTLP連接埠。在 Amazon 上EC2,由於應用程式與本機 CloudWatch 代理程式通訊,因此您應該將此值設定為 OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics
針對 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
變數,建議將值設定為 none
。這會停用其他指標匯出工具,以便只使用 Application Signals 匯出器。
將 OTEL_AWS_APPLICATION_SIGNALS_ENABLED
設定為 true
。這會從追蹤中產生 Application Signals 指標。
使用上一個步驟中列出的環境變數啟動應用程式。以下是啟動指令碼的範例。
下列組態僅支援適用於 Java 的 AWS Distro for OpenTelemetry Auto-Intrumentation 代理程式的 1.32.2 版和更新版本。
JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORT=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME
" \
java -jar $MY_JAVA_APP.jar
(選用) 若要啟用日誌關聯,請在 aws.log.group.names
中OTEL_RESOURCE_ATTRIBUTES
為應用程式的日誌群組設定其他環境變數。如此一來,您應用程式的追蹤和指標就可以與這些日誌群組的相關日誌項目建立關聯。對於此變數,請取代 $YOUR_APPLICATION_LOG_GROUP
包含您應用程式的日誌群組名稱。如果您有多個日誌群組,您可以使用 ampersand (&
) 來分隔它們,如以下範例所示:aws.log.group.names=log-group-1&log-group-2
。若要啟用指標來記錄關聯,設定此目前環境變數就足夠了。如需詳細資訊,請參閱啟用指標以記錄關聯。若要啟用追蹤至日誌關聯,您還需要變更應用程式中的日誌組態。如需詳細資訊,請參閱啟用追蹤至日誌關聯。
以下是有助於啟用日誌關聯之啟動指令碼的範例。
JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORT=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP
,service.name=$YOUR_SVC_NAME
" \
java -jar $MY_JAVA_APP.jar
- Python
-
在 Amazon EC2執行個體上啟用 Application Signals 時,測試您的 Python 應用程式
下載最新版本的 AWS Distro for OpenTelemetry Python 自動儀器代理程式。請執行下列 命令進行安裝。
pip install aws-opentelemetry-distro
您可以在 AWS Distro for OpenTelemetry Python 儀器 中檢視所有發行版本的相關資訊。
若要最佳化 Application Signals 優勢,請在啟動應用程式之前,使用環境變數提供其他資訊。此資訊將顯示在 Application Signals 儀表板中。
對於 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_PROTOCOL
變數,指定 http/protobuf
將遙測資料匯出HTTP到下列步驟中列出的 CloudWatch 代理程式端點。
針對OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
變數,指定要匯出追蹤URL的基本端點。 CloudWatch 代理程式透過 公開 4316 作為其OTLP連接埠HTTP。在 Amazon 上EC2,由於應用程式與本機 CloudWatch 代理程式通訊,因此您應該將此值設定為 OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
針對OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
變數,指定要匯出URL指標的基本端點。 CloudWatch 代理程式透過 公開 4316 作為其OTLP連接埠HTTP。在 Amazon 上EC2,由於應用程式與本機 CloudWatch 代理程式通訊,因此您應該將此值設定為 OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics
對於 OTEL_METRICS_EXPORTER
變數,建議將值設定為 none
。這會停用其他指標匯出工具,以便只使用 Application Signals 匯出器。
將OTEL_AWS_APPLICATION_SIGNALS_ENABLED
變數設定為 true
,讓您的容器開始將 X-Ray 追蹤和 CloudWatch 指標傳送至 Application Signals。
使用上一個步驟中討論的環境變數來啟動應用程式。以下是啟動指令碼的範例。
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_PYTHON_DISTRO=aws_distro \
OTEL_PYTHON_CONFIGURATOR=aws_configurator \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_TRACES_SAMPLER=xray \
OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME
" \
opentelemetry-instrument python $MY_PYTHON_APP.py
為 Python 應用程式啟用 Application Signals 之前,請注意下列考量事項。
-
(選用) 若要啟用日誌關聯,請在 aws.log.group.names
中OTEL_RESOURCE_ATTRIBUTES
為應用程式的日誌群組設定其他環境變數。如此一來,您應用程式的追蹤和指標就可以與這些日誌群組的相關日誌項目建立關聯。對於此變數,請取代 $YOUR_APPLICATION_LOG_GROUP
包含您應用程式的日誌群組名稱。如果您有多個日誌群組,您可以使用 ampersand (&
) 來分隔它們,如本範例所示:aws.log.group.names=log-group-1&log-group-2
。若要啟用指標來記錄關聯性,設定此目前環境變數就足夠了。如需詳細資訊,請參閱啟用指標以記錄關聯。若要啟用追蹤至日誌關聯,您還需要變更應用程式中的日誌組態。如需詳細資訊,請參閱啟用追蹤至日誌關聯。
以下是有助於啟用日誌關聯之啟動指令碼的範例。
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_PYTHON_DISTRO=aws_distro \
OTEL_PYTHON_CONFIGURATOR=aws_configurator \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_TRACES_SAMPLER=xray \
OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP
,service.name=$YOUR_SVC_NAME
" \
java -jar $MY_PYTHON_APP.jar
- .NET
-
在 Amazon EC2執行個體或內部部署主機上啟用 Application Signals 時,測試您的 .NET 應用程式
下載最新版本的 AWS Distro for OpenTelemetry .NET auto-intrumentation 套件。您可以在 aws-otel-dotnet-instrumentation版本 下載最新版本。
若要啟用 Application Signals,請設定下列環境變數,以便在啟動應用程式之前提供其他資訊。在您啟動 .NET 應用程式之前,這些變數是設定 . instrumentation NET的啟動掛鉤所必需。
以下是 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_RESOURCE_ATTRIBUTES=service.name=aws-otel-integ-test
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4316
export OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://127.0.0.1:4316/v1/metrics
export OTEL_METRICS_EXPORTER=none
export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true
export OTEL_TRACES_SAMPLER=xray
export OTEL_TRACES_SAMPLER_ARG=http://127.0.0.1:2000
以下是 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_RESOURCE_ATTRIBUTES = "service.name=aws-otel-integ-test"
$env:OTEL_EXPORTER_OTLP_PROTOCOL = "http/protobuf"
$env:OTEL_EXPORTER_OTLP_ENDPOINT = "http://127.0.0.1:4316"
$env:OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT = "http://127.0.0.1:4316/v1/metrics"
$env:OTEL_METRICS_EXPORTER = "none"
$env:OTEL_AWS_APPLICATION_SIGNALS_ENABLED = "true"
$env:OTEL_TRACES_SAMPLER = "xray"
$env:OTEL_TRACES_SAMPLER_ARG = "http://127.0.0.1:2000"
使用上一個步驟中列出的環境變數啟動應用程式。
(選用) 或者,您可以使用提供的安裝指令碼來協助安裝和設定 AWS Distro for OpenTelemetry .NET auto-intrumentation 套件。
對於 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.sh
export 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"
您可以在官方 NuGet 儲存庫 中找到 NuGet AWS Distro for OpenTelemetry .NET auto-intrumentation 套件的套件。請務必檢查 README 檔案以取得指示。
- Node.js
-
在 Amazon EC2執行個體上啟用 Application Signals 時測試 Node.js 應用程式
下載適用於 Node.js AWS 的 Distro for OpenTelemetry JavaScript Auto-intrumentation 代理程式的最新版本。請執行下列 命令進行安裝。
npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation
您可以在 AWS Distro for OpenTelemetry JavaScript instrumentation 中檢視所有發行版本的相關資訊。
若要最佳化 Application Signals 優勢,請在啟動應用程式之前,使用環境變數提供其他資訊。此資訊將顯示在 Application Signals 儀表板中。
對於 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_PROTOCOL
變數,指定 http/protobuf
將遙測資料匯出HTTP到下列步驟中列出的 CloudWatch 代理程式端點。
針對OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
變數,指定要匯出追蹤URL的基本端點。 CloudWatch 客服人員透過 公開 4316 作為其OTLP連接埠HTTP。在 Amazon 上EC2,由於應用程式與本機 CloudWatch 代理程式通訊,因此您應該將此值設定為 OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
針對OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
變數,指定要匯出URL指標的基本端點。 CloudWatch 客服人員透過 公開 4316 作為其OTLP連接埠HTTP。在 Amazon 上EC2,由於應用程式與本機 CloudWatch 代理程式通訊,因此您應該將此值設定為 OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics
對於 OTEL_METRICS_EXPORTER
變數,建議將值設定為 none
。這會停用其他指標匯出工具,以便只使用 Application Signals 匯出器。
將OTEL_AWS_APPLICATION_SIGNALS_ENABLED
變數設定為 true
,讓您的容器開始將 X-Ray 追蹤和 CloudWatch 指標傳送至 Application Signals。
使用上一個步驟中討論的環境變數來啟動應用程式。以下是啟動指令碼的範例。
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_TRACES_SAMPLER=xray \
OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME
" \
node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
-
(選用) 若要啟用日誌關聯,請在 aws.log.group.names
中OTEL_RESOURCE_ATTRIBUTES
為應用程式的日誌群組設定額外的環境變數。如此一來,您應用程式的追蹤和指標就可以與這些日誌群組的相關日誌項目建立關聯。對於此變數,請取代 $YOUR_APPLICATION_LOG_GROUP
包含您應用程式的日誌群組名稱。如果您有多個日誌群組,您可以使用 ampersand (&
) 來分隔它們,如本範例所示:aws.log.group.names=log-group-1&log-group-2
。若要啟用指標來記錄關聯性,設定此目前環境變數就足夠了。如需詳細資訊,請參閱啟用指標以記錄關聯。若要啟用追蹤至日誌關聯,您還需要變更應用程式中的日誌組態。如需詳細資訊,請參閱啟用追蹤至日誌關聯。
以下是有助於啟用日誌關聯之啟動指令碼的範例。
export OTEL_METRICS_EXPORTER=none \
export OTEL_LOGS_EXPORTER=none \
export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
export OTEL_TRACES_SAMPLER=xray \
export OTEL_TRACES_SAMPLER_ARG=endpoint=http://localhost:2000 \
export OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
export OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP
,service.name=$SVC_NAME
" \
node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
使用ESM模組格式設定 Node.js 應用程式
我們提供ESM模組格式的 Node.js 應用程式有限支援。如需詳細資訊,請參閱 使用 的 Node.js 的已知限制 ESM。
若要使用 為 Node.js 應用程式啟用 Application SignalsESM,您需要修改先前程序中的步驟。
首先,@opentelemetry/instrumentation
為您的 Node.js 應用程式安裝 :
npm install @opentelemetry/instrumentation@0.54.0
然後,在上一個程序中的步驟 3 和 4 中,從下列位置變更節點選項:
--require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register'
至下列項目:
--import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs