OpenClaw Main Makes Telemetry Export Failures Visible to Operators
Doctor and status now report redacted exporter health, while plugin-hosted LLM completions gain trusted usage attribution in OTel.
OpenClaw merged two observability fixes into main on 6 August that close different blind spots: configured OpenTelemetry exporters can now report redacted health through openclaw doctor and openclaw status --all, and LLM calls made through plugin runtime completions can produce trusted attributed usage spans.
The first change addresses the worst kind of monitoring failure: telemetry silently stops while the command intended to diagnose the system still looks healthy. The second reduces usage undercount when a plugin, rather than the core agent path, owns a model completion.
Operators who use diagnostics-otel, diagnostics-prometheus or plugins that call runtime.llm.complete should prioritize a containing release, then verify both transport health and accounting continuity. The reviewed evidence describes merged source and updated official documentation; it does not identify the containing package version.
What operators can now see
PR #119816 records exporter state transitions from the final exporter result callback, after dependency-owned retries finish. Current official documentation says openclaw doctor and openclaw status --all show the latest trusted state per signal and transport.
For the OpenTelemetry plugin, that projection can distinguish:
- OTLP/HTTP protobuf with an endpoint supplied by config or environment;
- OTLP/HTTP protobuf using the dependency’s default endpoint;
- stdout log export; and
- trace or metric export owned by an externally preloaded OpenTelemetry SDK.
Failures use fixed reason categories rather than raw errors. The health view excludes endpoint values, headers, certificates, payloads and raw error messages. Existing Prometheus label sets remain unchanged, according to the official source.
That redaction boundary matters. A diagnostics command should reveal that traces are failing without turning collector credentials or private network topology into support-ticket paste.
Operator decision
After upgrading to a containing build:
- run
openclaw status --allagainst the running Gateway; - run
openclaw doctorfrom the same operational environment; - verify each enabled signal reports the expected transport and current state;
- create a controlled collector failure and confirm the state degrades only after final retries fail;
- restore the collector and confirm recovery becomes visible; and
- compare plugin-driven model usage before and after the change.
Do not enable content capture just to test health. Exporter state and ordinary bounded diagnostics do not require prompt, response or tool content.
Health is a state snapshot, not delivery proof for every span
A healthy exporter state means the latest trusted export operation succeeded. It does not prove that every expected event was created, sampled, retained by the collector or accepted by a downstream backend.
Keep independent checks for:
- trace and metric arrival rate;
- collector rejection and queue pressure;
- dashboard freshness;
- sampling configuration;
- backend retention; and
- gaps between Gateway usage reports and exported usage totals.
Likewise, one failure followed by retry success should not be reported as a final failure. The merged implementation waits for the exporter dependency’s terminal result, reducing noisy false alarms from transient retryable responses.
Plugin LLM calls enter trusted usage attribution
PR #107937 routes direct, harness-isolated and CLI-isolated plugin LLM completions through a shared host-owned finalizer. Successful completions with positive usage or cost can emit one trusted model.usage diagnostic event and one attributed OTel usage span.
The plugin identity on the span is derived by host policy rather than accepted from plugin-provided diagnostic fields. That is the correct ownership boundary: a plugin should not be able to forge another plugin’s cost attribution.
The official source says aggregate metric labels and public listeners remain unchanged. Plugin identity is added only to the OpenTelemetry usage-span path, limiting cardinality and exposure changes.
Interpretation: this improves observability attribution, not provider billing authority. Token and cost values still depend on what the provider result exposes and on OpenClaw’s pricing data. Reconcile estimates with provider invoices.
A safe validation plan
Use a disposable plugin fixture or a known low-cost completion:
- issue one successful direct plugin completion with positive usage;
- issue equivalent harness-isolated and CLI-isolated completions if you use those modes;
- verify each completion creates no more than one attributed usage span;
- confirm failed or zero-usage results do not invent positive accounting;
- compare plugin identity with the host’s installed-plugin record; and
- confirm Prometheus series and public diagnostic subscriptions retain their expected shape.
For exporter health, point a staging instance at a controlled unavailable collector, not a production endpoint. Avoid placing endpoint URLs or authentication headers in screenshots and issue reports even though the command output is designed to redact them.
Privacy boundaries remain in force
Current OpenTelemetry documentation states that raw prompt, response, tool input and tool output content is not exported by default. Content capture is an explicit setting and carries materially different retention risk.
Exporter-health reporting does not justify enabling diagnostics.otel.captureContent. If content capture is needed for a limited investigation, approve the collector, access policy and retention window first, then turn it back off.
Scope and evidence limits
OpenClaw Academy reviewed the merged pull requests, commit evidence and current doctor, status and OpenTelemetry documentation. We did not operate an OTLP collector against the new code or independently inspect emitted spans. The upstream work includes extensive tests and Gateway-to-collector proof, but operators should still validate their actual SDK preload, endpoint and sampling arrangement.
Bottom line
OpenClaw main can now tell operators when telemetry export is failing without exposing collector secrets, and it can attribute plugin-hosted model usage at a trusted host boundary. Upgrade to a confirmed containing release, alert on the new health state, and reconcile exported usage with both Gateway reports and provider billing.
THE RECEIPTS
Claims should survive the click.
Primary links used for this article are listed openly. If the evidence changes, the verification date changes with it.THE OPERATOR BRIEF