

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

# 開始使用
<a name="CloudWatch-OTLPGettingStarted"></a>

若要在 CloudWatch 中開始使用 OpenTelemetry，您可以使用 CloudWatch 代理程式可用的預先封裝 OpenTelemetry 設定，以及 AWS Distro for OpenTelemetry SDKs。CloudWatch 可為您帶來最整合的監控體驗。

**注意**  
在您使用 OTLP 端點進行追蹤之前，請確定已啟用交易搜尋。

亦可靈活使用 OpenTelemetry Collector 或您自己的自訂 OpenTelemetry Collector，直接將遙測傳送至 OTLP 端點。您可以使用 AWS Distro for OpenTelemetry 進行無收集，並將遙測直接傳送到 OTLP 端點。根據功能支援做出明智選擇：


| 功能 | OpenTelemetry Collector | 自訂 OpenTelemetry Collector | AWS Distro for OpenTelemetry | 
| --- | --- | --- | --- | 
|  CloudWatch Application Signals (應用程式效能指標、服務探索和應用程式映射)  |  是  |  是  |  是  | 
|  搜尋和分析範圍及追蹤摘要  |  是  |  是  |  是  | 
|  搜尋和分析日誌摘要  |  是  |  是  |  是  | 
|  使用應用程式託管的 AWS 基礎設施屬性來監控遙測擴充應用程式效能。  |  否  |  是  |  是  | 
|  與您的應用程式關聯的執行時期指標。例如 JVM 指標  |  否  |  是  |  否  | 
|  AWS 支援  |  收到的資料 AWS  |  收到的資料 AWS  |  收到的資料 AWS  | 
|  支援的遙測  |  日誌、指標、追蹤  |  日誌、追蹤、指標  |  指標、追蹤  | 

**Topics**
+ [OpenTelemetry Collector](CloudWatch-OTLPSimplesetup.md)
+ [建置您自己的自訂 OpenTelemetry Collector](CloudWatch-OTLPAdvancedsetup.md)
+ [使用 AWS Distro for OpenTelemetry (ADOT) SDK 匯出無收集器遙測](CloudWatch-OTLP-UsingADOT.md)
+ [在 PromQL 中啟用付費指標](CloudWatch-OTelEnrichment.md)

# OpenTelemetry Collector
<a name="CloudWatch-OTLPSimplesetup"></a>

OpenTelemetry Collector 是開放原始碼、與廠商無關的代理程式，可接收、處理和匯出遙測資料。它充當應用程式與 Amazon CloudWatch 之間的中央管道，從多個來源收集指標、日誌和追蹤，並使用 OpenTelemetry Protocol (OTLP) 將其傳送至 CloudWatch。

將 OpenTelemetry Collector 與 CloudWatch 搭配使用可提供下列優點：
+ 透過單一代理程式從多個應用程式和主機收集遙測，減少與 CloudWatch 的連線數量。
+ 在傳送至 CloudWatch 之前處理和篩選遙測，包括新增或移除屬性、批次處理資料和取樣追蹤。
+ 在跨 AWS、內部部署和其他雲端環境中使用相同的收集器組態，無論應用程式在何處執行，都能提供一致的遙測管道。
+ 使用可在 CloudWatch Query Studio 中使用 Prometheus 查詢語言 (PromQL) 查詢的豐富標籤，將指標傳送至 CloudWatch。

## 支援的接收者
<a name="CloudWatch-OTLPSupportedReceivers"></a>

OpenTelemetry Collector 支援各種接收器來擷取遙測資料。您可以使用 OpenTelemetry 接收器，例如使用 OpenTelemetry SDKs 檢測的應用程式的 OTLP 接收器，或 Prometheus 接收器從現有的 Prometheus 匯出程式中抓取指標。與 CloudWatch 搭配使用的常見 Prometheus 接收器包括：
+ Prometheus 接收器，用於抓取任何與 Prometheus 相容的端點
+ 主機指標接收者，用於從主機收集系統層級指標
+ Kubernetes 叢集接收器，用於從 Kubernetes API 伺服器收集叢集層級指標

您可以在單一收集器中設定多個接收者，讓您同時收集 OpenTelemetry 和 Prometheus 指標，並透過相同的管道將其傳送至 CloudWatch。如需可用接收器的完整清單，請參閱 OpenTelemetry Collector [儲存庫](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver)。

## 開始使用
<a name="CloudWatch-OTLPSimplesetupGettingStarted"></a>

先決條件 – 如果使用 OTLP 端點進行追蹤，請確定交易搜尋已啟用。

步驟：

1. 下載最新版本的 OpenTelemetry Collector 分佈。如需詳細資訊，請參閱 OpenTelemetry Collector [版本](https://github.com/open-telemetry/opentelemetry-collector-releases/releases)。

1. 在主機上安裝 OpenTelemetry Collector。收集器會在任何作業系統和平台上執行。如需詳細資訊，請參閱[安裝 Collector](https://opentelemetry.io/docs/collector/installation/)。

1. 在 Amazon EC2 或內部部署主機上設定 AWS 登入資料。收集器會在傳送遙測資料時，使用這些登入資料向 CloudWatch 進行身分驗證。如需詳細資訊，請參閱下文。

------
#### [ Setup IAM permissions for Amazon EC2 ]

**請依循下列程序，將 `CloudWatchAgentServerPolicy` IAM 政策附加至 Amazon EC2 執行個體的 IAM 角色。**

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

   1. 選擇**角色**，然後尋找並選取 Amazon EC2 執行個體使用的角色。

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

   1. 透過搜尋方塊搜尋 `CloudWatchAgentServerPolicy` 政策。

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

------
#### [ Setup IAM permissions for on-premise hosts ]

**可以建立 IAM 使用者，用來提供許可給內部部署主機。**

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

   1. 選擇**使用者**、**建立使用者**。

   1. 在**使用者詳細資訊**下的**使用者名稱**中，輸入新 IAM 使用者的名稱。這是 的登入名稱 AWS ，將用於驗證您的主機。

   1. 選擇**下一步**。

   1. 在**設定許可**頁面，為**許可選項**選取**直接連結政策**。

   1. 在**許可政策**清單中，選取要新增至使用者的 **CloudWatchAgentServerPolicy** 政策。

   1. 選擇**下一步**。

   1. 在**檢閱和建立**頁面上，確定您對使用者名稱感到滿意，並且 **CloudWatchAgentServerPolicy** 政策位於**許可摘要**中。

   1. 選擇 **Create user** (建立使用者)。

   1. **建立和擷取您的 AWS 存取金鑰和私密金鑰** – 在 IAM 主控台的導覽窗格中，選擇**使用者**，然後選取您在上一個步驟中建立的使用者名稱。

   1. 在使用者頁面上，選擇**安全憑證**索引標籤。

   1. 在**存取金鑰**區段中，選擇**建立存取金鑰**。

   1. 針對**建立存取金鑰步驟 1**，請選擇**命令列界面 (CLI)**。

   1. 在**建立存取金鑰步驟 2** 中，輸入選用標籤，然後選擇**下一步**。

   1. 在**建立存取金鑰步驟 3** 中，選取**下載 .csv 檔案**，以儲存包含 IAM 使用者存取金鑰和私密存取金鑰的 .csv 檔案。您需要這些資訊才能進行後續步驟。

   1. 選擇**完成**。

   1. 輸入下列命令，在現場部署主機中設定您的 AWS 登入資料。將 *ACCESS\$1KEY\$1ID* 和 *SECRET\$1ACCESS\$1ID* 替換為您在上一個步驟中下載的 .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
      ```

------

1. 為您的 Amazon EKS 或 Kubernetes 叢集設定 AWS 登入資料。開始使用 Amazon EKS 的最簡單方法是使用 EKS OTel Container Insights 附加元件。如果您偏好直接使用 OpenTelemetry Collector，請依照下列程序設定 Amazon EKS 或 Kubernetes 叢集的 AWS 登入資料，將遙測傳送至 CloudWatch。

------
#### [ Setup IAM permissions for Amazon EKS ]

   1. 使用下列命令為您的叢集建立 IAM OIDC 身分提供者。

      ```
      eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} --region ${REGION} --approve
      ```

   1. 透過下列命令，將 IAM 角色指派給 OTel Collector 的 Kubernetes 服務帳戶。

      ```
      eksctl create iamserviceaccount \
      --name ${COLLECTOR_SERVICE_ACCOUNT}\
      --namespace ${NAMESPACE} \
      --cluster ${CLUSTER_NAME} \
      --region ${REGION} \
      --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
      --approve \
      --override-existing-serviceaccounts
      ```

------
#### [ Setup IAM permissions for Kubernetes ]

   1. 輸入下列命令，在現場部署主機中設定您的 AWS 登入資料。將 *ACCESS\$1KEY\$1ID* 和 *SECRET\$1ACCESS\$1ID* 替換為您在上一個步驟中下載的 .csv 檔案中新產生的存取金鑰和私密存取金鑰。依預設，憑證檔案儲存在 */home/user/.aws/credentials* 下。

      ```
      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
      ```

   1. 編輯 OpenTelemetry Collector 資源，使用如下命令新增新建立的 AWS 憑證機密：`kubectl edit OpenTelemetryCollector otel_collector`

   1. 使用檔案編輯器，將下列組態新增至部署頂端，將 AWS 登入資料新增至 OpenTelemetryCollector 容器。將路徑 */home/user/.aws/credentials* 取代為本機 AWS 登入資料檔案的位置。

      ```
                           spec:
                          volumeMounts:
                          - mountPath: /rootfs
                          volumeMounts:
                          - name: aws-credentials
                          mountPath: /root/.aws
                          readOnly: true
                          volumes:
                          - hostPath:
                          path: /home/user/.aws/credentials
                          name: aws-credentials
      ```

------

1. 在收集器組態中設定 OTLP 匯出工具，將遙測傳送至 CloudWatch 端點。請參閱下列範例。

## 收集器組態範例
<a name="CloudWatch-OTLPSimplesetupConfigureCollector"></a>

複製並貼上以下內容，以設定收集器，將日誌和追蹤傳送至 OTLP 端點。

```
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  otlphttp/logs:
    compression: gzip
    logs_endpoint: logs_otlp_endpoint
    headers: 
      x-aws-log-group: ency_log_group
      x-aws-log-stream: default
    auth:
      authenticator: sigv4auth/logs
      
  otlphttp/traces:
    compression: gzip
    traces_endpoint: traces_otlp_endpoint
    auth:
      authenticator: sigv4auth/traces

extensions:
  sigv4auth/logs:
    region: "region"
    service: "logs"
  sigv4auth/traces:
    region: "region"
    service: "xray"

service:
  telemetry:
  extensions: [sigv4auth/logs, sigv4auth/traces]
  pipelines:
    logs:
      receivers: [otlp]
      exporters: [otlphttp/logs]
    traces:
      receivers: [otlp]
      exporters: [otlphttp/traces]
```

以下為使用 sigv4 將日誌和追蹤傳送至 us-east-1 的範例。

```
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  otlphttp/logs:
    compression: gzip
    logs_endpoint: https://logs.us-east-1.amazonaws.com/v1/logs
    headers: 
      x-aws-log-group: MyApplicationLogs
      x-aws-log-stream: default
    auth:
      authenticator: sigv4auth/logs
      
  otlphttp/traces:
    compression: gzip
    traces_endpoint: https://xray.us-east-1.amazonaws.com/v1/traces
    auth:
      authenticator: sigv4auth/traces

extensions:
  sigv4auth/logs:
    region: "us-east-1"
    service: "logs"
  sigv4auth/traces:
    region: "us-east-1"
    service: "xray"

service:
  telemetry:
  extensions: [sigv4auth/logs, sigv4auth/traces]
  pipelines:
    logs:
     receivers: [otlp]
      exporters: [otlphttp/logs]
    traces:
      receivers: [otlp]
      exporters: [otlphttp/traces]
```

**注意**  
將 OpenTelemetry SDK 設定為 *always\$1on* 取樣組態，以可靠記錄 100% 的範圍，並透過 CloudWatch Application Signals 全面了解關鍵應用程式的運作狀況。如需詳細資訊，請參閱 [OpenTelemetry Java SDK 取樣器組態](https://opentelemetry.io/docs/languages/java/sdk/#sampler)範例。如需使用 X-Ray OTLP 端點設定 OpenTelemetry Collector 的範例，請參閱 [Application Signals 示範](https://github.com/aws-observability/application-signals-demo/blob/main/scripts/opentelemetry/otel_simple_setup/opentelemetry.yaml)儲存庫。

複製並貼上以下內容，以設定收集器將指標傳送至 OTLP 端點。

```
receivers:
  otlp:
    protocols:
      http:
        endpoint: "0.0.0.0:4318"

processors:
  batch:
    send_batch_size: 200
    timeout: 10s

exporters:
  otlphttp:
    tls:
      insecure: false
    endpoint: metrics_otlp_endpoint
    auth:
      authenticator: sigv4auth

extensions:
  sigv4auth:
    service: "monitoring"
    region: "region"

service:
  extensions: [sigv4auth]
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp]
```

以下是使用 sigv4 將指標傳送至 us-east-1 的範例。

```
receivers:
  otlp:
    protocols:
      http:
        endpoint: "0.0.0.0:4318"

processors:
  batch:
    send_batch_size: 200
    timeout: 10s

exporters:
  otlphttp:
    tls:
      insecure: false
    endpoint: "https://monitoring.us-east-1.amazonaws.com/v1/metrics:443"
    auth:
      authenticator: sigv4auth

extensions:
  sigv4auth:
    service: "monitoring"
    region: "us-east-1"

service:
  extensions: [sigv4auth]
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp]
```

# 建置您自己的自訂 OpenTelemetry Collector
<a name="CloudWatch-OTLPAdvancedsetup"></a>

您可以建置自己的自訂 OpenTelemetry Collector，使用 OpenTelemetry 在 CloudWatch 中取得最佳應用程式可觀測性體驗。在此設定中，需要使用開放原始碼 CloudWatch 元件建置自己的 OpenTelemetry Collector。

## 先決條件
<a name="CloudWatch-OTLPAdvancedsetupPrequisite"></a>

確定已在 CloudWatch 中啟用 *Transaction Search*。如需詳細資訊，請參閱 [Transaction Search](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search.html)。

## 建置您自己的收集器
<a name="CloudWatch-OTLPAdvancedsetupBuildCollector"></a>

可以使用下列組態建置您自己的收集器，使用 OpenTelemetry 在 CloudWatch 中監控您的應用程式。如需詳細資訊，請參閱[建置自訂收集器](https://opentelemetry.io/docs/collector/custom-collector/)。

CloudWatch 的常見組態。

```
dist:
  name: otelcol-dev
  description: OTel Collector for sending telemetry to CloudWatch.
  output_path: ./otelcol-dev
extensions:
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.111.0
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/awsproxy v0.113.0
exporters:
  - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.111.0
  - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.111.0
receivers:
  - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.111.0
```

追蹤的其他組態。

```
# Enable Tracing 
dist:
  name: otelcol-dev
  description: OTel Collector for sending telemetry to CloudWatch.
  output_path: ./otelcol-dev
extensions:
    #Include common configurations and your custom extensions

exporters:
    #Include common configurations and your custom extensions
 
receivers:
  - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.111.0
processors:
  - gomod: github.com/amazon-contributing/opentelemetry-collector-contrib/processor/awsapplicationsignalsprocessor v0.113.0
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.113.0
replaces:
  - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.113.0 => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.113.0
  - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs v0.113.0 => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/cwlogs v0.113.0
  - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.113.0 => github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.113.0
  - github.com/openshift/api v3.9.0+incompatible => github.com/openshift/api v0.0.0-20180801171038-322a19404e37
```

**注意**  
注意下列事項：  
建置收集器之後，請依循 [OpenTelemetry Collector](CloudWatch-OTLPSimplesetup.md) 下的程序，在主機或 kubernetes 環境中部署和設定自訂收集器。
如需使用 Application Signals 處理器設定自訂 OpenTelemetry 收集器的詳細資訊，請參閱 [Application Signals 自訂組態](https://github.com/aws-observability/application-signals-demo/blob/main/scripts/opentelemetry/appsignals_custom_otel_setup/custom-opentelemetry.yaml)範例。Application Signals 處理器僅支援將最新版本的 OpenTelemetry Collectors 用於自訂建置。如需受支援版本的資訊，請參閱 [opentelemetry-collector-contrib](https://github.com/amazon-contributing/opentelemetry-collector-contrib/tags) 儲存庫。

# 使用 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)以取得相關說明。

------

# 在 PromQL 中啟用付費指標
<a name="CloudWatch-OTelEnrichment"></a>

您可以啟用 OTel 擴充功能，讓[支援的 AWS 資源](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/UsingResourceTagsForTelemetry.html)的付費指標可透過 PromQL 查詢。啟用後，包含資源識別符維度的指標 （例如具有 InstanceId 維度的 EC2 CPUUtilization) 會充實資源 ARN 和資源標籤標籤標籤，並使用 PromQL 進行查詢。

擴充的指標會保留原始指標名稱和 CloudWatch 維度，並新增：
+ **資源屬性** – 資源 ARN (`cloud.resource_id`)、雲端提供者、區域和帳戶 ID。
+ **檢測範圍** – 識別來源服務，並將指標標記為 OTel 豐富。
+ **資源標籤** – 與資源相關聯的任何 AWS 資源標籤，可查詢為 PromQL 標籤。

原始傳統 CloudWatch 指標不會修改，並且仍可透過現有的 CloudWatch APIs使用。

## 啟用已佈建指標的 OpenTelemetry 擴充功能
<a name="CloudWatch-OTelEnrichment-Enable"></a>

開始 OTel 擴充之前，您必須在您帳戶的[遙測上啟用資源標籤](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/EnableResourceTagsOnTelemetry.html)。

您可以使用 CloudWatch 主控台或 AWS SDK AWS CLI，為特定區域中的帳戶啟用 OTel 擴充。

您將需要下列操作的許可： `cloudwatch:StartOTelEnrichment`

**啟用 AWS 指標的 OTel 擴充功能 (CloudWatch 主控台）**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **CloudWatch**，然後選擇**設定**。

1. 在**啟用 AWS 指標的 OTel 擴充**窗格中，開啟 功能。

**AWS CLI**

```
aws cloudwatch start-o-tel-enrichment
```

若要跨多個區域啟用 ，請在每個關注區域中叫用 API。

啟用擴充功能後，您可以透過 PromQL 開始查詢已結束的指標。請參閱：[使用 PromQL 查詢已結束的 AWS 指標](CloudWatch-PromQL-Querying.md#CloudWatch-PromQL-Querying-Vended)。