Troubleshooting
Symptoms first, causes second. Everything here assumes the Rius SDK
(glassflow-ai) 0.6.0 or newer.
No traces are arriving
Check in this order:
- Is the SDK disabled?
GLASSFLOW_DISABLED=1(ortrue/yes/on) silently drops all spans in-process. Also checkdisabled=Truein code. - Is sampling set low?
GLASSFLOW_SAMPLE_RATE=0.1keeps one trace in ten;0keeps none. Sampling decides per whole trace, so a sampled-out trace is completely invisible, not partially. - Did the process exit before the batch flushed? Batches flush every 5
seconds by default. Short scripts can exit between batches if the
interpreter is killed rather than exiting cleanly; call
client.flush()at the end. Serverless invocations should always flush explicitly. - Endpoint and key. Verify
GLASSFLOW_ENDPOINTandGLASSFLOW_API_KEY. Export failures are logged as warnings from the OpenTelemetry exporter, so raise your log level to see them; they never raise in your code.
”init() called again” warning
The global OpenTelemetry provider is write-once. A second init() returns
the existing client unchanged and logs this warning. If you genuinely need
to reconfigure, call client.shutdown() first; if you need a parallel
pipeline, use init(set_global=False).
An instrumentation is not producing spans
- The extra must be installed in the same environment
(
pip install "glassflow-ai[openai]"). A requested-but-missing integration logs a warning atinit()time. - Scoped clients (
set_global=False) do not auto-instrument; passinstruments=[...]explicitly. - If another OpenTelemetry setup already instrumented the library, the SDK leaves it alone by design; its spans go wherever that setup exports.
Content is missing from spans
capture_content=False(orGLASSFLOW_CAPTURE_CONTENT=false) strips prompt/response content at export while keeping metadata. See Privacy controls for exactly which attributes are covered.- A masking callable that raises or returns
Nonedrops the affected attribute entirely, by design (fail closed), with a warning log.
Values look truncated
Inputs, outputs, and serialized objects are capped at 8192 characters, with
an explicit …(truncated) suffix. This is a fixed safety limit on attribute
size.
Spans are dropped under load
The in-memory queue holds 2048 spans by default; overflow is dropped with a
warning. Raise OTEL_BSP_MAX_QUEUE_SIZE, or lower the volume with
sampling. See Reliability for all
batching knobs.
Next steps
- Reliability: the export pipeline these symptoms come from, and every knob on it.
- Installation and configuration: the full configuration reference.
Last updated on