yalethom.as/txtop

Connect OpenRouter telemetry

OpenRouter Broadcast can send OTLP traces to txtop. The receiver and mapper are fixture-tested; as of 2026-08-11, the project has not recorded a real-account canary confirming every production attribute and cost field.

Start a receiver

Run the collector with its experimental OTLP/HTTP endpoint:

txtop up --otlp-http --otlp-http-listen 127.0.0.1:4318

OpenRouter must reach the receiver over public HTTPS. Put an authenticated reverse proxy or tunnel in front of the loopback listener and forward the trace path to:

http://127.0.0.1:4318/v1/traces

The txtop receiver does not provide TLS or authentication. Do not expose an unauthenticated 0.0.0.0:4318 listener to the internet.

Configure Broadcast

  1. Open OpenRouter Settings > Observability and enable Broadcast.
  2. Add an OpenTelemetry Collector destination.
  3. Enter the public HTTPS endpoint, including /v1/traces.
  4. Add the reverse proxy’s authorization header when required.
  5. Keep Privacy Mode enabled if txtop only needs model, token, cost, and timing attributes.
  6. Test the connection, save it, then send one real OpenRouter request.

The empty dashboard connection test returns success without creating a fake usage event.

Verify the canary

Run:

txtop db doctor
txtop db doctor --json

A real trace should create a recent openrouter | otlp_http source success and an event in events.db. Receiver-level errors indicate transport or payload decoding failures.

Token mapping uses standard GenAI usage attributes and does not depend on prompt or completion content. Cost mapping remains provisional until a production payload confirms the attribute names; provider API polling remains the fallback for reported OpenRouter cost.

OpenRouter documents the current destination and payload behavior in Broadcast and OpenTelemetry Collector.