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-fastapi package adds ASGI middleware to your FastAPI application that automatically creates a trace context for every incoming HTTP request. You can then use the @observe_llm and @observe_span decorators to attach LLM call details and custom spans to that context without passing trace objects through your call stack.
Installation
lumiq-fastapi requires httpx for flushing traces. Install it alongside the package if it is not already in your environment:
Adding the middleware
ImportLumiqFastAPIMiddleware and LumiqConfig, then register the middleware with your FastAPI app using add_middleware.
LumiqConfig options
Your LumiqTrace API key. Must start with
lqt_.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, between
0.0 and 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 — request bodies may contain sensitive data.When
True, the response body is captured and attached to the trace.Field names whose values are redacted before any data is stored. 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 async function that makes an LLM call. The decorator captures the model name, provider, duration, and token usage (extracted automatically from the response object if it has a .usage attribute).
@observe_llm parameters:
The model identifier to record on the span. Example:
"gpt-4o", "claude-sonnet-4-6".The provider name to record on the span. Example:
"openai", "anthropic".Tracing custom operations with @observe_span
Use @observe_span to instrument any async function as a named span. The decorator records the function name, duration, and status (success or error) as attributes on the current request’s trace context.
@observe_span parameters:
The span name. Appears as the operation label in the trace view.
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. Call it from anywhere in your request handler — the attribute is included in the trace when it flushes.
Getting the current trace ID
Useget_current_trace_id() to retrieve the trace ID for the current request. This is useful for logging or for correlating LumiqTrace data with your own observability stack.