diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index e0a420782..cb475ada9 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "c082cf892a810037084155fe993e6057e14a6128", - "syncedAt": "2026-04-26T21:03:36.258Z" + "sha": "2194a8c64caa5bdbbe8347d9882ccf1a501a2b5c", + "syncedAt": "2026-04-26T21:14:37.135Z" } diff --git a/docs/gateway/opentelemetry.md b/docs/gateway/opentelemetry.md index 5614f8e4c..7e1fa390e 100644 --- a/docs/gateway/opentelemetry.md +++ b/docs/gateway/opentelemetry.md @@ -154,6 +154,10 @@ When any subkey is enabled, model and tool spans get bounded, redacted `spanId`, `parentSpanId`, and `traceFlags` when the log call carries a valid diagnostic trace context, which lets log processors join local log lines with exported spans. +- **Request correlation:** Gateway HTTP requests and WebSocket frames create an + internal request trace scope. Logs and diagnostic events inside that scope + inherit the request trace by default, while agent run and model-call spans are + created as children so provider `traceparent` headers stay on the same trace. ## Exported metrics diff --git a/docs/logging.md b/docs/logging.md index 9b09b55c8..6941aaf07 100644 --- a/docs/logging.md +++ b/docs/logging.md @@ -164,6 +164,13 @@ OpenClaw writes the trace fields as top-level JSON keys (`traceId`, `spanId`, `parentSpanId`, `traceFlags`) so external log processors can correlate the line with OTEL spans and provider `traceparent` propagation. +Gateway HTTP requests and Gateway WebSocket frames establish an internal request +trace scope. Logs and diagnostic events emitted inside that async scope inherit +the request trace when they do not pass an explicit trace context. Agent run and +model-call traces become children of the active request trace, so local logs, +diagnostic snapshots, OTEL spans, and trusted provider `traceparent` headers can +be joined by `traceId` without logging raw request or model content. + ### Model call size and timing Model-call diagnostics record bounded request/response measurements without