

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

# 使用 OpenTelemetry 收集指標和追蹤
<a name="CloudWatch-Agent-OpenTelemetry-metrics"></a>

 您可以使用 CloudWatch 代理程式搭配廣受歡迎的開放原始碼解決方案 OpenTelemetry Protocol (OTLP)，從應用程式或服務收集指標與追蹤。您可以使用任何 OpenTelemetry SDK，將指標和追蹤傳送至 CloudWatch 代理程式。如需可用 OpenTelemetry SDK 的詳細資訊，請參閱 [OpenTelemetry 支援的語言 API 及 SDK](https://opentelemetry.io/docs/languages/)。

若要收集 OpenTelemetry 指標和追蹤，請將 `otlp` 區段新增至 CloudWatch 代理程式設定檔。此區段包含下列欄位：
+ `grpc_endpoint` - 選用。為 CloudWatch 代理程式指定位址，以用來偵聽使用 gRPC 遠端程序呼叫傳送的 OpenTelemetry 指標或追蹤。格式是 `ip:port`。此地址必須符合在 OpenTelemetry SDK 中為 gRPC 匯出程式設定的地址。如果您省略此欄位，預設為使用 `127.0.0.1:4317`。
+ `http_endpoint` - 選用。為 CloudWatch 代理程式指定地址，以用於偵聽透過 HTTP 傳送的 OpenTelemetry 指標或追蹤。格式是 `ip:port`。此地址必須符合在 OpenTelemetry SDK 中為 HTTP 匯出程式設定的地址。如果您省略此欄位，預設為使用 `127.0.0.1:4318`。
+ `tls` - 選用。指定應使用 TLS 設定的伺服器。
  + `cert_file` – 用於 TLS 所需連線的 TLS 憑證路徑。
  + `key_file` – 用於 TLS 所需連線的 TLS 金鑰路徑。

可根據您希望傳送指標與追蹤的方式和位置，將 `otlp` 區段置於 CloudWatch 代理程式設定檔內的多個區段中。

**重要**  
每個 `otlp` 區段都需要唯一的端點和連接埠。如需分割指標及追蹤端點的詳細資訊，請參閱 OpenTelemetry SDK 文件中的 [OTLP 匯出器設定](https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/)。

若要將指標傳送至 CloudWatch 或 Amazon Managed Service for Prometheus，請在 `metrics` 區段 `metrics_collected` 下方新增 `otlp` 區段。如需將指標傳送至不同目的地的詳細資訊，請參閱 [手動建立或編輯 CloudWatch 代理程式組態檔案](CloudWatch-Agent-Configuration-File-Details.md)。下列範例顯示將指標傳送至 CloudWatch 的組態：

**注意**  
 若您在容器化環境中執行代理程式，並從代理程式容器網路外部傳送遙測，請務必將端點指定為 `0.0.0.0`，而非預設端點 `127.0.0.1`。

```
{
  "metrics": {
    "metrics_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

若要使用內嵌指標格式 (EMF) 將指標傳送至 Amazon CloudWatch Logs，請在 `logs` 區段 `metrics_collected` 下方新增 `otlp` 區段。根據預設，這會將 EMF 日誌傳送至 `/aws/cwagent` 日誌群組和產生的日誌串流。根據預設，指標會擷取至 `CWAgent` 命名空間。下列範例顯示將指標作為 EMF 日誌傳送至 CloudWatch Logs 的組態：

```
{
  "logs": {
    "metrics_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

若要傳送追蹤到 AWS X-Ray，請在 `otlp`區段`traces_collected`下方新增 `traces`區段。下列範例顯示將追蹤傳送至 X-Ray 的組態：

```
{
  "traces": {
    "traces_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```