orq.* attributes are OpenTelemetry span attributes emitted by Orq.ai on every trace span. They appear in the Traces panel, in LLM webhook payloads, and in trace exports. Core attributes appear on every span; attributes in Invoked resources, Evaluators, and Routing sections appear only when the relevant feature was active.
Quick reference
Span type
Classifies the kind of work a span represents. Useorq.span_type to filter spans by operation type in the Traces view or LLM webhook payloads.
Common values:
Model
Related standard fields:
gen_ai.request.model: model requested by the callergen_ai.response.model: model that actually ran; use this for the human-readable model name, as it reflects the true model after any routing or fallback
Cost and billing
These attributes appear in the Economics panel, trace list, and LLM webhook payloads.Token counts live under
gen_ai.usage.*, not orq.*. See Token usage below.Token usage
Token counts follow the OpenTelemetrygen_ai.usage.* convention. Detailed breakdowns are present only when the provider reports them.
The cached and cache-written counts are subsets of
gen_ai.usage.input_tokens. Their cost is reported separately in orq.billing.cache_read_cost and orq.billing.cache_write_cost. See Prompt caching for how these appear per API.
Tenant scope
Scope a trace to the organization, workspace, and product surface.
Filter traces by project, or assign cost to an Identity.
Invoked resources
Links a trace to the Orq.ai resources that served the request.
Use these to answer: which deployment, prompt, knowledge base, schedule, or workflow produced this trace? To identify which agent execution produced this trace, use
orq.agent_execution_id.
Conversation and session grouping
orq.thread_id groups individual turns into a conversation. orq.session_id groups requests across conversations for broader session tracking; when a request carries both, orq.thread_id determines the grouping. Pass orq.thread_id to group related turns in the Threads view.
The standard OTel field
gen_ai.conversation.id is also supported. When both are present, orq.thread_id takes precedence as the first-class thread identifier in the UI and trace exports.Custom metadata and attribution
Arbitrary key-value context attached to the span, such as
customer_tier or feature_flag. Filterable in the Traces view and in Trace Automations.
Filterable attributes follow ingest limits: string values longer than 512 bytes are not kept as filterable attributes, and attribute keys longer than 512 bytes are dropped. Up to 200 attribute keys per span are kept, raise the limit to at most 1000 with the
orq.attribute_keys_limit attribute. Selection is deterministic: keys prefixed gen_ai. or orq. are kept first, then the remaining keys alphabetically. The full span payload, including values past these limits, stays available on the span detail.Guardrail rules and routing rules
These attributes reflect static rule enforcement: which routing rule or guardrail matched this request. For dynamic model selection (fallback, Smart Router, load balancer), see Routing, fallback, and model selection.
Use these to debug why a request was blocked or routed by a rule.
Evaluators
On Evaluator and Guardrail spans:
Score, pass, and fail results also appear via standard
gen_ai.evaluation.* attributes.
gen_ai.evaluation.explanation carries free-text reasoning. Explanations longer than 512 bytes appear shortened with an ellipsis in list views and tooltips; the full text remains on the span detail. Substring filters are not offered on this attribute.
Routing, fallback, and model selection
These attributes reflect dynamic model selection at runtime: which model was actually chosen, and why it differed from the one requested. For static rule enforcement, see Guardrail rules and routing rules.
Use these to explain cost differences and latency spikes when routing changed the model.
Framework source
Use this to distinguish traces emitted directly by Orq.ai from those produced by an external framework.
Webhook example
A typical LLM webhook payload includes these attributes in thedata.attributes block: