使用 OpenTelemetry 收集指标和跟踪 - Amazon CloudWatch

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

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