What does the output.value attribute mean in Rius?
In Rius, output.value is a general-purpose attribute that holds what a span produced, as JSON or plain text, and it can sit on any span. It is a content attribute that Rius stores as sent and shows for trace inspection. Rius also fills it from the tool result key gen_ai.tool.call.result and from OpenLLMetry’s traceloop.entity.output. It does not drive cost, which Rius computes from the model name and token counts.
How it works
- What it holds. OpenInference defines it as “the output value of an operation”, a string, with
output.mime_type(text/plainorapplication/json) naming its format. Rius’s registry entry lists it at Development stability, as the output of an agent, tool, retriever or chain step, as text or JSON. Its partner isinput.value, which holds the step’s input. - Which spans carry it. Any span, whether it is a tool call, a chain step, an agent run or a model call. Model-call spans usually carry their reply in
gen_ai.output.messagesinstead, which uses the GenAI message shape and renders as the prompt and completion on the span’s Input / Output tab. - How it is stored. As sent. A value you set on
output.valuestays under that key, so you search and filter onoutput.value. - Older and other names that become it. Rius moves some keys onto
output.valueat ingest:- For tool calls,
gen_ai.tool.call.resultis moved tooutput.value, so the tool’s output renders like any other span’s output. If the span already has a nativeoutput.value, that one wins. The source key is removed either way, so search onoutput.value. - For OpenLLMetry and Traceloop spans,
traceloop.entity.outputbecomesoutput.value. - Laminar’s
lmnr.span.outputis normalized at ingest under the canonical keys.
- For tool calls,
- What Rius computes from it. Nothing numeric. It counts as content, so it is not used for cost, tokens or timing. Cost comes from
gen_ai.request.modelplus thegen_ai.usage.*token counts, and you never send a cost attribute. - Privacy. Because it is content,
output.valueis among the values that content controls can strip before export. Content capture is on by default in the Rius SDKs, so they send it. SettingRIUS_CAPTURE_CONTENTto false strips it at export, while timings, tokens and cost are unaffected. An OpenInference instrumentation run withOPENINFERENCE_HIDE_OUTPUTS=truereplaces it with the placeholder__REDACTED__instead.
Set it up
- Send traces to Rius over OTLP/HTTP with your API key. The span attribute reference lists every attribute Rius reads and covers the full contract.
POST https://ingest.eu.console.rius-glassflow.com/v1/traces
Authorization: Bearer <your API key>
Content-Type: application/x-protobuf- On each span whose result you want to inspect, set
output.valueto the result as JSON or plain text. Setinput.valuethe same way for the input. - For a tool span, you can set
gen_ai.tool.call.resultinstead, and Rius moves it tooutput.value. A nativeoutput.valuetakes priority. - For a model call, put the reply in
gen_ai.output.messagesas JSON in the GenAI message shape, so the prompt and completion render on the Input / Output tab. Also setgen_ai.request.modeland the token counts so Rius can compute cost. - If you already use OpenLLMetry or Traceloop, change nothing. Rius reads
traceloop.entity.outputand stores it asoutput.value.
The Trace LLM calls with OpenTelemetry guide walks through the wider setup for sending spans from your own OpenTelemetry code.
What you get
- The output of a step is stored on the span, whatever the span’s kind, so you can inspect what a tool, chain or agent step returned.
- Tool results from different senders land under one key,
output.value, so one search or filter covers them. - A span without content still shows its timings, tokens and cost. A span with no content attributes shows “Content not captured” on the Input / Output tab.
- The same content controls that cover prompts and replies cover
output.value, so you can send structure only when the output is sensitive.
When something else fits
- For a model call, use
gen_ai.output.messagesin the GenAI message shape. It is the key Rius renders as the completion, andoutput.valueis the generic fallback for any other span. - If you need numbers such as cost, tokens or time to first token, set the model and usage attributes.
output.valuecarries content only.
Related
Last updated on