Skip to main content
The Omnia tracing SDK captures your LLM traffic without moving your inference: your app keeps calling its current provider, and traces stream to Omnia where they become gradeable population. It is a thin, open curation of standard OpenTelemetry: the package contains no instrumentation code of its own, and removing it later loses nothing (the identical setup in vanilla OTel is documented in each SDK’s eject guarantee). This page covers what the SDK is and when to choose it over the other integration paths. For per-language install, configuration, what’s captured, and the eject code, see the SDKs tab: overview, TypeScript, Python.

Install and initialize

One call at startup, before constructing any LLM client:
Pure-ESM Node apps need no code at all: start with the loader hook so imports are intercepted before your app runs:
Only libraries actually installed in your environment are instrumented. Successful calls, streamed calls (content aggregated across chunks), and failed calls (stored as ERROR trace structure) are all captured.
Registry publishing is rolling out. If an install 404s, the SDK’s whole value survives: it is a thin curation of standard OpenTelemetry, and the identical setup from ecosystem packages is documented in the eject guide — same spans, no Omnia package. The agent prompt carries that fallback inline, so an agent-driven setup never dead-ends.
Model-call content (prompts and completions) is stored only if your workspace has request logging enabled, under your retention window, with the same scrubbing and size caps as gateway traffic. Span structure is kept either way.

Verify

The setup check proves the key works, confirms traces are landing, and names your next step. Instrumentation that isn’t sending traces fails the check explicitly instead of failing silently. Already emitting OpenTelemetry from a framework like the Vercel AI SDK? You don’t need this package: see OTLP trace ingest for the three-env-var form.