使用 OpenTelemetry 收集指標和追蹤 - Amazon CloudWatch

使用 OpenTelemetry 收集指標和追蹤

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

若要收集 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 匯出器設定

若要將指標傳送至 CloudWatch 或 Amazon Managed Service for Prometheus,請在 metrics 區段 metrics_collected 下方新增 otlp 區段。如需將指標傳送至不同目的地的詳細資訊,請參閱 手動建立或編輯 CloudWatch 代理程式組態檔案。下列範例顯示將指標傳送至 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,請在 traces 區段 traces_collected 下方新增 otlp 區段。下列範例顯示將追蹤傳送至 X-Ray 的組態:

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