使用 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" } } } }