使用 OTLP 端點傳送日誌 (OpenTelemetry Logs) - Amazon CloudWatch Logs

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 OTLP 端點傳送日誌 (OpenTelemetry Logs)

OpenTelemetry Logs 端點 (/v1/logs) 接受 JSON 或 Protobuf 編碼中的 OpenTelemetry Protocol (OTLP) 日誌資料。如需 OTLP 端點的詳細資訊,包括組態和用量,請參閱使用 OpenTelemetry 將指標和追蹤傳送至 CloudWatch

如果您使用承載字符身分驗證,請先完成 中的設定步驟,設定承載字符身分驗證再繼續。

要求格式

  • 方法: POST

  • Content-Type: application/jsonapplication/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 回應上,指出用戶端何時應重試。