OpenClaw telemetry
Stream OpenClaw agent runs into Latitude as traces. After setup, agent runs appear in your project’s Traces view with model calls, tool calls, token usage, cost, timing, and nested subagent activity — as a properinvoke_agent → chat → execute_tool tree.
The recommended way is OpenClaw’s official OpenTelemetry exporter (the bundled @openclaw/diagnostics-otel plugin), pointed at Latitude’s OTLP ingest. It follows OpenTelemetry GenAI semantic conventions and is maintained by OpenClaw — see OpenClaw’s OpenTelemetry docs.
Note: OpenClaw’s official exporter is the preferred setup and is documented below. If you need to group a multi-turn conversation into a Latitude session, the Latitude-maintained @latitude-data/openclaw-telemetry plugin remains the only option that emits a session id today — the native exporter doesn’t yet (openclaw/openclaw#91927).
Prerequisites
- A Latitude account with a project
- OpenClaw 2026.6 or newer
- A Latitude API key and your project slug (project sidebar → Settings → API Keys)
Setup
1. Install the exporter
2. Point it at Latitude
Add thediagnostics.otel block to ~/.openclaw/openclaw.json. Latitude’s ingest accepts OTLP/HTTP (protobuf) at /v1/traces and authenticates with your API key; the project is selected with the X-Latitude-Project header.
3. Restart and verify
Structural-only telemetry
To capture trace structure (timing, model, token usage, cost, run/tool shape) without prompt, response, or tool content, setcaptureContent.enabled to false:
Captured data and privacy
WithcaptureContent.enabled = true, Latitude receives the content needed to reconstruct runs — prompts, responses, system instructions, and tool input/output — plus model metadata, token usage, and cost. The granular captureContent.* flags let you capture some kinds of content and not others. Content is not exported unless you opt in. Disable capture (or telemetry entirely) before working with sensitive material you don’t want sent to Latitude.
Disable
Pause the exporter without uninstalling:Switching to the native exporter
If you previously installed@latitude-data/openclaw-telemetry, remove it and switch to the native exporter above:
invoke_agent → chat → execute_tool structure, and no changes are needed on the Latitude side.
Note — session grouping. The native exporter does not export a session id (OpenClaw redacts session keys by design — see OpenClaw’s OpenTelemetry docs), so each agent turn arrives as its own trace and the Sessions view won’t group a multi-turn conversation. The@latitude-data/openclaw-telemetryplugin emits asession.idand does group turns. We’re tracking opt-in upstream support in openclaw/openclaw#91927; once it lands, Latitude groups automatically (we already resolvesession.id,gen_ai.session.id,gen_ai.conversation.id, andlangfuse.session.id).
Troubleshooting
No traces appear. Restart the gateway, confirm the API key and project slug are correct, and send a new agent message. A401/403 from ingest means the API key isn’t valid for that project’s organization.
Traces show timing but no content. captureContent.enabled is false — set it to true and restart.
Traces aren’t grouped into sessions. Expected with the native exporter — it doesn’t emit a session id (see the note above). Each turn is its own trace until openclaw/openclaw#91927 ships an opt-in session attribute. For session grouping today, use the @latitude-data/openclaw-telemetry plugin.
Traces silently never arrive. Check that tracesEndpoint uses https://. Plain http:// gets a 301 redirect that OTLP exporters don’t follow on POST, so batches are dropped with no error.