After some digging, here is why I suspect that cost shows $0. . It's not that cost data is missing. It's being exported through a different OTel signal. The plugin (diagnostics-otel) does capture cost.
When a model invocation completes, service.ts calls costCounter.add(evt.costUsd, attrs), exporting it as an OTel counter metric. But Phoenix reads span attributes, not metrics .
In recordModelUsage, only token counts are written to the span (openclaw.tokens.*), not cost.
So Phoenix queries the span, finds nothing, and reports $0.
Hi Muni โ I'm new to Phoenix and looking for some research challenges (I don't use OpenClaw). I deleted my last response because it needed some corrections. . After taking a look at the OpenClaw repo, here is what I suspect is happening: . Two questions first:
How did you connect Phoenix? Are you using @arizeai/phoenix-otel, the diagnostics-otel plugin, or something else? (I'm assuming you used diagnostics-otel)
Click into one of those spans โ what do you see in the Attributes tab?
. The problem: Looking at service.ts on main, the diagnostics-otel plugin doesn't emit the data Phoenix needs. . Two reasons:
No content capture. The plugin does not include prompt or response text in traces. There should be a captureContent option but it doesn't exist on main yet. Input/output will always show --.
Wrong semantic conventions. The plugin emits openclaw.* attributes. Phoenix expects OpenInference (input.value, output.value, openinference.span.kind). That should be why kind shows "unknown" and cost reads $0.
. PR #21290 addresses both โ adds captureContent and aligns with GenAI semantic conventions โ but even after it merges, you'd still need a translation step to get from gen_ai.* to OpenInference. Arize's @arizeai/openinference-genai package handles that conversion at export time. Phoenix docs here. . Mitigation . I did notice a community plugin for Phoenix. It doesn't appear to be managed by Arize - for that reason I'd rather not include links. . I hope that this provides a good starting point ๐
