

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

# 使用 AWS Distro for OpenTelemetry (ADOT) SDK 匯出無收集器遙測
<a name="CloudWatch-OTLP-UsingADOT"></a>

您可以使用 ADOT SDKs進行無收集，並將指標、追蹤和日誌直接傳送到 OTLP 端點。

**注意**  
Application Signals 包含 Transaction Search 功能。若要避免支出重複，請在 ADOT SDK 中停用 Application Signals，並保持 `OTEL_AWS_APPLICATION_SIGNALS_ENABLED` 設定為 false (預設設定)。

**Topics**
+ [先決條件](#CloudWatch-OTLP-UsingADOT-Prerequisite)
+ [為您的角色設定 IAM 許可](#setup-iam-permissions-role)
+ [設定憑證提供者](#configure-credentials-providers)
+ [啟用 ADOT SDK](#Enabling-ADOT)

## 先決條件
<a name="CloudWatch-OTLP-UsingADOT-Prerequisite"></a>

如果您使用的是追蹤，請確定已啟用交易搜尋以傳送跨度至 X-Ray OTLP 端點。如需詳細資訊，請參閱《[開始使用 Transaction Search](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search-getting-started.html)》。

## 為您的角色設定 IAM 許可
<a name="setup-iam-permissions-role"></a>

請依循下列步驟，將必要的 IAM 政策附加至您的角色：

**追蹤：**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 選擇**角色**，然後尋找並選取您設定的角色。

1. 在**許可**索引標籤中，依序選擇**新增許可**、**連結政策**。

1. 透過搜尋方塊搜尋 `AWSXrayWriteOnlyPolicy`。

1. 選取 `AWSXrayWriteOnlyPolicy` 政策，然後選擇**新增許可**。

**日誌：**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 選擇**角色**，然後尋找並選取您設定的角色。

1. 在**許可**索引標籤中，依序選擇**新增許可**、**建立內嵌政策**。

1. 為服務選取 **CloudWatch Logs**，然後在**允許的動作**下篩選並選取：

   ```
   logs:PutLogEvents
   logs:DescribeLogGroups
   logs:DescribeLogStreams
   ```

1. 以下是授與必要許可的 IAM 政策範例：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CloudWatchLogsAccess",
               "Effect": "Allow",
               "Action": [
                   "logs:PutLogEvents",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams"
                  
               ],
               "Resource": [
                   "arn:aws:logs:*:*:log-group:*"
               ]
           }
       ]
   }
   ```

------

## 設定憑證提供者
<a name="configure-credentials-providers"></a>

ADOT 使用 AWS SDKs自動探索匯出遙測資料所需的有效登入資料 AWS。如需為特定環境設定登入資料的指引，[請參閱 AWS SDKS 如何擷取登入資料的文件。](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)

**為內部部署主機設定 IAM 憑證：**

輸入下列命令，在現場部署主機中設定您的 AWS 登入資料。將 **ACCESS\$1KEY\$1ID** 和 **SECRET\$1ACCESS\$1KEY** 替換為您設定之 IAM 角色或使用者的憑證。

```
$ 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 SDK
<a name="Enabling-ADOT"></a>

您可以從 Java、Node.js、Python 和 .Net 上的 AWS Distro for OpenTelemetry (ADOT) 開發套件，讓應用程式日誌和追蹤直接傳送到 OTLP 端點。

------
#### [ Java ]

**注意**  
必須使用 **ADOT Java Agent 版本 2.11.2 或更高版本**，才能使用這些功能。

1. 下載最新版本的 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 發行版本](https://github.com/aws-observability/aws-otel-java-instrumentation/releases)檢視所有已發行的版本資訊。

1. 若要啟用直接將遙測傳送至 OTLP 端點的不同匯出工具，並最佳化優點，請在啟動應用程式之前使用下列環境變數：

   **追蹤：**
   + 設定 `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_TRACES_EXPORTER` 設定為 `otlp` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 將 `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` 變數設定為 `http/protobuf` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 設定 `OTEL_RESOURCE_ATTRIBUTES` 變數，以鍵值對形式指定以下資訊。這些環境變數供 Application Signals 使用，並且會轉換為 X-Ray 追蹤注釋和 CloudWatch 指標維度：
     + (選用) `service.name` 設定服務名稱。這將顯示為應用程式在 Application Signals 儀表板中的服務名稱。如果您不提供此索引鍵的值，則會使用預設值 `UnknownService`。
     + (選用) `deployment.environment` 設定執行應用程式的環境。這將顯示為您應用程式的**託管環境**。
     + (選用) 若要啟用日誌關聯，請在 `aws.log.group.names` 中為應用程式的日誌群組設定額外的環境變數 `OTEL_RESOURCE_ATTRIBUTES`。如此一來，您應用程式的追蹤與指標，便能與這些日誌群組中的相關日誌條目關聯對應。對於此變數，請將 `$YOUR_APPLICATION_LOG_GROUP` 替換為應用程式的日誌群組名稱。如有多個日誌群組，可以使用 `&` 進行分隔，如本範例所示：`aws.log.group.names=log-group-1&log-group-2`。若要啟用指標與日誌的關聯，只需設定此環境變數即可。如需詳細資訊，請參閱[啟用指標與日誌的關聯](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html)。若要啟用追蹤與日誌的關聯，還需要在應用程式中變更日誌記錄組態。如需詳細資訊，請參閱[啟用追蹤與日誌的關聯](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html)。

   **日誌：**
   + 設定 `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` 以指定 CloudWatch OTLP 日誌端點：`https://logs.[AWSRegion].amazonaws.com/v1/logs`

     例如：

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + 設定 `OTEL_EXPORTER_OTLP_LOGS_HEADERS` 以指定您要將日誌匯出到的日誌群組和日誌串流 (注意：這些必須在執行 ADOT **之前**建立)：`x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     例如：

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + 將 `OTEL_LOGS_EXPORTER` 設定為 `otlp` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 將 `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` 變數設定為 `http/protobuf` (這是選用選項，如果不設定此環境變數，則為預設值)。

1. 設定 `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"
   ```

1. 您的應用程式目前應該在使用 ADOT Java 檢測功能執行，將產生範圍和日誌。範圍將儲存在 `aws/spans` CloudWatch 日誌群組中，日誌則會儲存於 `OTEL_EXPORTER_OTLP_LOGS_HEADERS` 標頭指定的日誌群組中。也可以在 CloudWatch 追蹤與指標主控台中檢視與您的範圍相關的日誌和指標。

1. 使用上一個步驟中列出的環境變數來啟動應用程式。以下是啟動指令碼的範例。

   ```
   JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default 
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   java -jar $MY_JAVA_APP.jar
   ```

------
#### [ Node.js ]

**注意**  
必須使用 **ADOT JavaScript 版本 0.7.0 或更高版本**，才能使用這些功能。

1. 下載最新版本的 AWS Distro for OpenTelemetry JavaScript 自動檢測。請執行下列 命令進行安裝。

   ```
   npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation
   ```

   可以透過 [aws-otel-js-instrumentation Releases](https://github.com/aws-observability/aws-otel-js-instrumentation/releases) 檢視所有已發行版本的相關資訊。

1. 若要啟用直接將遙測傳送至 OTLP 端點的不同匯出工具，並最佳化優點，請在啟動應用程式之前使用下列環境變數：

   **追蹤：**
   + 設定 `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_TRACES_EXPORTER` 設定為 `otlp` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 將 `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` 變數設定為 `http/protobuf` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 設定 `OTEL_RESOURCE_ATTRIBUTES` 變數，以鍵值對形式指定以下資訊。這些環境變數供 Application Signals 使用，並且會轉換為 X-Ray 追蹤注釋和 CloudWatch 指標維度：
     + (選用) `service.name` 設定服務名稱。這將顯示為應用程式在 Application Signals 儀表板中的服務名稱。如果您不提供此索引鍵的值，則會使用預設值 `UnknownService`。
     + (選用) `deployment.environment` 設定執行應用程式的環境。這將顯示為您應用程式的**託管**環境。
     + (選用) 若要啟用日誌關聯，請在 `aws.log.group.names` 中為應用程式的日誌群組設定額外的環境變數 `OTEL_RESOURCE_ATTRIBUTES`。如此一來，您應用程式的追蹤與指標，便能與這些日誌群組中的相關日誌條目關聯對應。對於此變數，請將 `$YOUR_APPLICATION_LOG_GROUP` 替換為應用程式的日誌群組名稱。如有多個日誌群組，可以使用 `&` 進行分隔，如本範例所示：`aws.log.group.names=log-group-1&log-group-2`。若要啟用指標與日誌的關聯，只需設定此環境變數即可。如需詳細資訊，請參閱[啟用指標與日誌的關聯](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html)。若要啟用追蹤與日誌的關聯，還需要在應用程式中變更日誌記錄組態。如需詳細資訊，請參閱[啟用追蹤與日誌的關聯](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html)。

   **日誌：**
   + 設定 `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` 以指定 CloudWatch OTLP 日誌端點：`https://logs.[AWSRegion].amazonaws.com/v1/logs`

     例如：

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + 設定 `OTEL_EXPORTER_OTLP_LOGS_HEADERS` 以指定您要將日誌匯出到的日誌群組和日誌串流 (注意：這些必須在執行 ADOT **之前**建立)：`x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     例如：

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + 將 `OTEL_LOGS_EXPORTER` 設定為 `otlp` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 將 `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` 變數設定為 `http/protobuf` (這是選用選項，如果不設定此環境變數，則為預設值)。

1. 您的應用程式目前應該在使用 ADOT JavaScript 檢測功能執行，將產生範圍和日誌。範圍將儲存在 `aws/spans` CloudWatch 日誌群組中，日誌則會儲存於 `OTEL_EXPORTER_OTLP_LOGS_HEADERS` 標頭指定的日誌群組中。也可以在 CloudWatch 追蹤與指標主控台中檢視與您的範圍相關的日誌和指標。

1. 使用上一個步驟中列出的環境變數來啟動應用程式。以下是啟動指令碼的範例。

   將 `$SVC_NAME` 取代為應用程式名稱。這將顯示為應用程式的名稱。

   ```
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default 
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
   ```

------
#### [ Python ]

**注意**  
必須使用 **ADOT Python 版本 0.10.0 或更高版本**，並安裝 **`botocore`**，才能使用這些功能。

1. 下載最新版本的 AWS Distro for OpenTelemetry Python 自動檢測。請執行下列 命令進行安裝。

   ```
   pip install aws-opentelemetry-distro
   ```

   可以透過 [aws-otel-python-instrumentation Releases](https://github.com/aws-observability/aws-otel-python-instrumentation/releases) 檢視所有已發行版本的相關資訊。

1. 若要啟用直接將遙測傳送至 OTLP 端點的不同匯出工具，並最佳化優點，請在啟動應用程式之前使用下列環境變數：

   **對於追蹤和日誌組態，必須設定下列環境變數：**
   + `OTEL_PYTHON_DISTRO` 至 `aws_distro`
   + `OTEL_PYTHON_CONFIGURATOR` 至 `aws_configurator`

   **追蹤：**
   + 設定 `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_TRACES_EXPORTER` 設定為 `otlp` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 將 `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` 變數設定為 `http/protobuf` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 設定 `OTEL_RESOURCE_ATTRIBUTES` 變數，以鍵值對形式指定以下資訊。這些環境變數供 Application Signals 使用，並且會轉換為 X-Ray 追蹤注釋和 CloudWatch 指標維度：
     + (選用) `service.name` 設定服務名稱。這將顯示為應用程式在 Application Signals 儀表板中的服務名稱。如果您不提供此索引鍵的值，則會使用預設值 `UnknownService`。
     + (選用) `deployment.environment` 設定執行應用程式的環境。這將顯示為您應用程式的**託管**環境。
     + (選用) 若要啟用日誌關聯，請在 `aws.log.group.names` 中為應用程式的日誌群組設定額外的環境變數 `OTEL_RESOURCE_ATTRIBUTES`。如此一來，您應用程式的追蹤與指標，便能與這些日誌群組中的相關日誌條目關聯對應。對於此變數，請將 `$YOUR_APPLICATION_LOG_GROUP` 替換為應用程式的日誌群組名稱。如有多個日誌群組，可以使用 `&` 進行分隔，如本範例所示：`aws.log.group.names=log-group-1&log-group-2`。若要啟用指標與日誌的關聯，只需設定此環境變數即可。如需詳細資訊，請參閱[啟用指標與日誌的關聯](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html)。若要啟用追蹤與日誌的關聯，還需要在應用程式中變更日誌記錄組態。如需詳細資訊，請參閱[啟用追蹤與日誌的關聯](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html)。

   **日誌：**
   + 將 `OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED` 設定為 `true`
   + 設定 `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` 以指定 CloudWatch OTLP 日誌端點：`https://logs.[AWSRegion].amazonaws.com/v1/logs`

     例如：

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + 設定 `OTEL_EXPORTER_OTLP_LOGS_HEADERS` 以指定您要將日誌匯出到的日誌群組和日誌串流 (注意：這些必須在執行 ADOT **之前**建立)：`x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     例如：

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + 將 `OTEL_LOGS_EXPORTER` 設定為 `otlp` (這是選用選項，如果不設定此環境變數，則為預設值)。
   + 將 `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` 變數設定為 `http/protobuf` (這是選用選項，如果不設定此環境變數，則為預設值)。

1. 您的應用程式目前應該在使用 ADOT Python 檢測功能執行，將產生範圍和日誌。範圍將儲存在 `aws/spans` CloudWatch 日誌群組中，日誌則會儲存於 `OTEL_EXPORTER_OTLP_LOGS_HEADERS` 標頭指定的日誌群組中。也可以在 CloudWatch 追蹤與指標主控台中檢視與您的範圍相關的日誌和指標。

1. 使用上一個步驟中列出的環境變數來啟動應用程式。以下是啟動指令碼的範例。

   將 `$SVC_NAME` 取代為應用程式名稱。這將顯示為應用程式的名稱。

   將 `$PYTHON_APP` 替換為您應用程式的位置和名稱。

   ```
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
   OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   opentelemetry-instrument python $MY_PYTHON_APP.py
   ```

------
#### [ .Net ]

**注意**  
需要 **ADOT .NET 版本 1.8.0 或更高版本**，才能使用這些功能。
目前不支援壓縮。
目前不支援日誌。

下載最新版本的 AWS Distro for OpenTelemetry .NET 自動檢測套件。可以透過 [aws-otel-dotnet-instrumentation Releases](https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases) 檢視所有已發行版本的相關資訊。

若要啟用直接將遙測傳送至 OTLP 端點的不同匯出工具，並最佳化優點，請在啟動應用程式之前使用下列環境變數 (將 `OTEL_RESOURCE_ATTRIBUTES` 環境變數中的 `dotnet-service-name` 替換為所選的服務名稱)：

**追蹤：**
+ **必須**將 `OTEL_TRACES_EXPORTER` 設定為 `none`
+ **必須**將 `OTEL_AWS_SIG_V4_ENABLED` 設定為 `true`

  **.NET 中不會自動啟用**此功能。必須專門指定環境變數，才能在 .NET 檢測中識別此使用案例。此要求僅適用於 .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_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_TRACES_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_TRACES_PROTOCOL=http/protobuf
$env:OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
```

1. 使用上一個步驟中列出的環境變數來啟動應用程式。

1. （選用） 或者，您可以使用提供的安裝指令碼來協助安裝和設定 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 套件。 [ NuGet ](https://www.nuget.org/packages/AWS.Distro.OpenTelemetry.AutoInstrumentation) 請務必檢查 [README 檔案](https://github.com/aws-observability/aws-otel-dotnet-instrumentation/blob/main/src/AWS.Distro.OpenTelemetry.AutoInstrumentation/nuget-readme.md)以取得相關說明。

------