How OTLP maps to Mirador
A span is a span: plain root-span attributes stay on the root span rather than becoming trace attributes. Use
mirador.trace.attribute.<key> to promote one into the trace attribute bag, and mirador.trace.tags to set trace tags. Set service.name on the Resource.
Span events are stored without a severity unless they carry mirador.event.severity, so they do not affect a trace’s info, warn, and error counts on their own. See Enrichment hints.
Because the trace ID is preserved, the ID attached to an OTel log record or propagated in a W3C traceparent header is the same ID you search for in Mirador.
Export traces
Configure a standard OTLP/HTTP trace exporter:Enrich traces with external actions
Mirador recognizes reservedmirador.* span events as enrichment hints. A hint can tell Mirador to follow an EVM, Solana, Canton, Safe, Relay, or Stripe action — or resolve an asset’s market rate — and stitch its outcome back into the same trace.
Delivery behavior
- Sampling matters. A hint or span cannot reach Mirador when its parent span is sampled out. Use an always-on or parent-based always-on sampler for flows that must be observed.
- Flush before exit. Let batch processors drain, or call your provider’s shutdown/force-flush method before a short-lived process exits.
- Retries are idempotent. Re-exporting the same span is deduplicated using deterministic command IDs.
- Partial success is explicit. Invalid or zero trace/span IDs are counted in the OTLP
RejectedSpansresponse while valid spans in the same export continue. - Timestamps are preserved. Mirador uses the SDK’s wall-clock timestamps, so emitting hosts should have a reasonably synchronized clock.
OpenRouter LLM content
For the complete Broadcast configuration, endpoint, authentication header, and troubleshooting steps, see Connect OpenRouter to Mirador. OpenRouter’s Broadcast export triplicates each generation’s prompt and completion byte-for-byte acrossgen_ai.prompt, span.input, and trace.input (and gen_ai.completion, span.output, and trace.output), which can push a single span’s attribute bag into the megabytes.
Mirador detects this signature on ingest and relocates one copy of each out of the span and trace attribute bags into span events — gen_ai.content.prompt and gen_ai.content.completion — whose details carries the content. The duplicates are dropped and the small gen_ai.* metadata such as model, tokens, and cost stays on the attributes. Relocated content is surfaced on the trace’s event history through GET /v1/traces/{trace_id}/events.
Copies that are not byte-identical are left untouched. There is nothing to configure: this applies only to the byte-identical OpenRouter duplication shape.
Correlate logs with traces
OTLP log records that containtrace_id and span_id remain linked to their originating trace and span. Most OTel logging integrations inject this context automatically when a log is emitted while a span is active.
See Logs over OTLP for exporter configuration and preserved fields.
Next steps
Enrichment hints
Track transactions, Safe actions, Relay intents, Stripe payments, and market rates
Logs
Send structured logs with trace and span correlation