






















@@ -61,11 +61,11 @@ openclaw plugins enable diagnostics-otel
61616262## Signals exported
636364-| Signal | What goes in it |
65-| ----------- | --------------------------------------------------------------------------------------------------------------------------------- |
66-| **Metrics** | Counters and histograms for token usage, cost, run duration, message flow, queue lanes, session state, exec, and memory pressure. |
67-| **Traces** | Spans for model usage, model calls, tool execution, exec, webhook/message processing, context assembly, and tool loops. |
68-| **Logs** | Structured `logging.file` records exported over OTLP when `diagnostics.otel.logs` is enabled. |
64+| Signal | What goes in it |
65+| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
66+| **Metrics** | Counters and histograms for token usage, cost, run duration, message flow, queue lanes, session state, exec, and memory pressure. |
67+| **Traces** | Spans for model usage, model calls, harness lifecycle, tool execution, exec, webhook/message processing, context assembly, and tool loops. |
68+| **Logs** | Structured `logging.file` records exported over OTLP when `diagnostics.otel.logs` is enabled. |
69697070Toggle `traces`, `metrics`, and `logs` independently. All three default to on
7171when `diagnostics.otel.enabled` is true.
@@ -176,6 +176,10 @@ When any subkey is enabled, model and tool spans get bounded, redacted
176176- `openclaw.session.stuck_age_ms` (histogram, attrs: `openclaw.state`)
177177- `openclaw.run.attempt` (counter, attrs: `openclaw.attempt`)
178178179+### Harness lifecycle
180+181+- `openclaw.harness.duration_ms` (histogram, attrs: `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.harness.phase` on errors)
182+179183### Exec
180184181185- `openclaw.exec.duration_ms` (histogram, attrs: `openclaw.exec.target`, `openclaw.exec.mode`, `openclaw.outcome`, `openclaw.failureKind`)
@@ -201,6 +205,10 @@ When any subkey is enabled, model and tool spans get bounded, redacted
201205- `gen_ai.system` by default, or `gen_ai.provider.name` when the latest GenAI semantic conventions are opted in
202206- `gen_ai.request.model`, `gen_ai.operation.name`, `openclaw.provider`, `openclaw.model`, `openclaw.api`, `openclaw.transport`
203207- `openclaw.provider.request_id_hash` (bounded SHA-based hash of the upstream provider request id; raw ids are not exported)
208+- `openclaw.harness.run`
209+- `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.provider`, `openclaw.model`, `openclaw.channel`
210+- On completion: `openclaw.harness.result_classification`, `openclaw.harness.yield_detected`, `openclaw.harness.items.started`, `openclaw.harness.items.completed`, `openclaw.harness.items.active`
211+- On error: `openclaw.harness.phase`, `openclaw.errorCategory`, optional `openclaw.harness.cleanup_failed`
204212- `openclaw.tool.execution`
205213- `gen_ai.tool.name`, `openclaw.toolName`, `openclaw.errorCategory`, `openclaw.tool.params.*`
206214- `openclaw.exec`
@@ -251,6 +259,16 @@ to them directly without OTLP export.
251259- `run.attempt`
252260- `diagnostic.heartbeat` (aggregate counters: webhooks/queue/session)
253261262+**Harness lifecycle**
263+264+- `harness.run.started` / `harness.run.completed` / `harness.run.error` —
265+ per-run lifecycle for the agent harness. Includes `harnessId`, optional
266+`pluginId`, provider/model/channel, and run id. Completion adds
267+`durationMs`, `outcome`, optional `resultClassification`, `yieldDetected`,
268+ and `itemLifecycle` counts. Errors add `phase`
269+ (`prepare`/`start`/`send`/`resolve`/`cleanup`), `errorCategory`, and
270+ optional `cleanupFailed`.
271+254272**Exec**
255273256274- `exec.process.completed` — terminal outcome, duration, target, mode, exit
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。