使用 OTLP 端点发送OpenTelemetry 日志(日志) - Amazon CloudWatch 日志

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 OTLP 端点发送OpenTelemetry 日志(日志)

OpenTelemetry 日志端点 (/v1/logs) 接受 JSON 或 Protobuf 编码的 OpenTelemetry 协议 (OTLP) 日志数据。有关 OTLP 端点的详细信息,包括配置和使用情况,请参阅使用发送指标和 CloudWatch 跟 OpenTelemetry踪

如果您使用的是不记名令牌身份验证,请先完成中的设置步骤,设置不记名令牌身份验证然后再继续。

请求格式

  • 方法:POST

  • 内容类型:或 application/json application/x-protobuf

  • 日志组:仅限x-aws-log-group标题(不支持查询参数)

  • 日志流:x-aws-log-stream标头

示例请求

curl -X POST "https://logs.<region>.amazonaws.com/v1/logs" \ -H "Authorization: Bearer ACWL<token>" \ -H "Content-Type: application/json" \ -H "x-aws-log-group: MyLogGroup" \ -H "x-aws-log-stream: MyLogStream" \ -d '{ "resourceLogs": [ { "resource": { "attributes": [ { "key": "service.name", "value": { "stringValue": "my-service" } } ] }, "scopeLogs": [ { "scope": { "name": "my-library", "version": "1.0.0" }, "logRecords": [ { "timeUnixNano": "1741900000000000000", "severityNumber": 9, "severityText": "INFO", "body": { "stringValue": "User logged in successfully" }, "attributes": [ { "key": "user.id", "value": { "stringValue": "12345" } } ] } ] } ] } ] }'

响应

成功(接受所有活动):

HTTP 200 OK {}

部分成功(某些事件被拒绝):

{ "partialSuccess": { "rejectedLogRecords": 5, "errorMessage": "{\"tooOldLogEventCount\": 3, \"tooNewLogEventCount\": 1, \"expiredLogEventCount\": 1}" } }

当请求 Content-Type 为时application/x-protobuf,响应将作为具有相同字段的序列化 ExportLogsServiceResponse protobuf 消息返回。

OTLP 特有的行为

以下行为特定于 OTLP 端点,不存在于其他 HTTP 摄取端点上:

  • Retry-After 标头 — 包含在 503 和 429 响应中,用于指示客户端何时应重试。