TheDocumentation Index
Fetch the complete documentation index at: https://docs.lumiqtrace.com/llms.txt
Use this file to discover all available pages before exploring further.
lumiq-flask package adds WSGI middleware to your Flask application that automatically creates a trace context for every incoming HTTP request. The @observe_llm and @observe_span decorators let you attach LLM call details and custom operation spans to that context without threading trace objects through your call stack.
Installation
Adding the middleware
ImportLumiqFlaskMiddleware and LumiqConfig, then wrap your Flask app with the middleware class.
LumiqConfig options
Your LumiqTrace API key. Must start with
lqt_. Find it in Settings → API Keys.Override the LumiqTrace API base URL. Use this only if you are self-hosting the ingest endpoint.
When
False, the middleware passes all requests through without tracing. Useful for disabling tracing in test environments.Fraction of requests to trace, from
0.0 to 1.0. Set to 0.1 to trace 10% of requests in high-traffic environments.When
True, the request body is captured and attached to the trace. Enable only after reviewing your data retention policy.When
True, the response body is captured and attached to the trace.Field names whose values are redacted before storage. Applied regardless of
capture_request_body.When
True, logs flush errors to stdout. Enable during integration testing.Tracing LLM calls with @observe_llm
Use the @observe_llm decorator on any function that makes an LLM call. The decorator captures model name, provider, duration, and token usage (extracted automatically if the response has a .usage attribute).
@observe_llm parameters:
Model identifier to record on the span, e.g.
"gpt-4o" or "claude-sonnet-4-6".Provider name, e.g.
"openai" or "anthropic".Tracing custom operations with @observe_span
Use @observe_span to instrument any function as a named span within the current request’s trace context.
The span name. Appears as the operation label in the trace flame graph.
A hint for the span type. Common values:
"llm", "retriever", "custom".Setting custom attributes
Useset_attribute to attach arbitrary key-value data to the current request’s trace context from anywhere in your handler.
Getting the current trace ID
Useget_current_trace_id() to retrieve the trace ID for the active request. Useful for correlating LumiqTrace data with your own logging stack.
Complete example
For async Flask applications (using
flask[async]), the @observe_llm and @observe_span decorators support both sync and async functions transparently.