使用 OpenTelemetry 收集指标和跟踪 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 OpenTelemetry 收集指标和跟踪

可以结合使用 CloudWatch 代理和常用的开源解决方案 OpenTelemetry 协议(OTLP),从应用程序或服务收集指标和跟踪。可以使用任何 OpenTelemetry SDK 将指标和跟踪发送到 CloudWatch 代理。有关可用的 OpenTelemetry SDK 的更多信息,请参阅 OpenTelemetry Supported Language APIs & SDKs

要收集 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 Exporter Configuration

要向 CloudWatch 或 Amazon Managed Service for Prometheus 发送指标,请在 metrics 部分内的 metrics_collected 下添加 otlp 部分。有关将指标发送到不同目标的更多信息,请参阅手动创建或编辑 CloudWatch 代理配置文件。以下示例显示了向 CloudWatch 发送指标的配置:

{ "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" } } } }

要将跟踪发送到 Amazon 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" } } } }