Skip to content

OpenTelemetry (OTLP)

If your agents already emit OpenTelemetry traces — directly or via OpenInference / OpenLLMetry instrumentation — you can point them at Lumni instead of (or alongside) your existing collector. Lumni maps OTLP spans onto its run and step model and runs every detector on the result.

Send OTLP over HTTP to:

OTLP/HTTP
https://agentf.lumniverse.com/v1/ingest/otlp

Authenticate with your API key as a bearer token, the same as REST ingestion.

Set the OTLP endpoint and headers via standard environment variables — no code change if you’re already instrumented:

env
export OTEL_EXPORTER_OTLP_ENDPOINT="https://agentf.lumniverse.com/v1/ingest/otlp"
export OTEL_EXPORTER_OTLP_HEADERS="authorization=Bearer ${LUMNI_API_KEY}"
OTLP / OpenInference spanLumni step
LLM / chat / completion spanmodel step — pulls model and token counts from span attributes
Tool / function spantool step — pulls tool name, input, and output
Span status = ERRORSets the step’s failed status for detectors
Root spanThe run, with the user request and final output

Token attributes (llm.token_count.prompt, gen_ai.usage.input_tokens, and similar) are read into inputTokens so Context Overflow works, and span costs into costUsd for loop waste estimates.

After you deploy, trigger one agent run and check that a matching run appears in Lumni with its steps populated. If model steps are missing token counts, confirm your instrumentation emits token-usage attributes.