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