ModelRig Quickstart Routing & reliability Route bundles Probes Bake-offs & replay How it fits Grade protocol Optimization loop Caching lifecycle Bring your traces (OTLP) Observe a pipeline Migration playbook (T0–T2) Recognition playbooks Tenants & statements Published receipts Provenance & trust Artifact content custody The MCP oracle Use-case templates Template: ticket triage Template: document extraction Template: CS next action Template: lead qualification Template: compliance review Template: catalog cleansing Template: call disposition QA Template: financial classification Template: medical classification Leaderboard

Bring your traces: OTLP ingest

You already instrument your AI app with OpenTelemetry — the Vercel AI SDK, LangChain/LangGraph, OpenLLMetry, Pydantic AI, Claude Code, or your own spans. Point that same trace stream at ModelRig and each trace becomes a run you can open in the console, with one attested step per span: its model, provider, operation, timing, status, and token usage, rendered next to your gateway-measured runs.

What we read

For every span, we normalize structure and identity only:

What we never read

No content, ever. Prompts, completions, chat messages, tool arguments, tool results, retrieved documents — the content of your spans is never read, never stored, never logged. The normalizer only looks at the structural attributes above; a content attribute like ai.prompt.messages is counted (so the numbers stay honest) and then dropped. This is the retention-free default: content custody is a separate, explicitly opted-in feature.

Sending traces

POST https://<your-modelrig-host>/v1/otlp/v1/traces

Most OTLP exporters just need the endpoint URL and the Authorization header. For example, with the OpenTelemetry SDK set OTEL_EXPORTER_OTLP_TRACES_ENDPOINT to the path above and add your key to OTEL_EXPORTER_OTLP_TRACES_HEADERS.

Limits and gotchas

What you get

Open Runs in the console. An OTLP-ingested trace appears as a run whose steps carry the attested badge, their model and provider, and their token usage — the same drill-down as your measured runs, for any framework you already emit from.