This release is a pre-release and may not be stable for production use.
acceldata-aio-tracer
The Acceldata AIO instrumentation SDK. OpenTelemetry-native: it does not replace your instrumentation, it completes it.
pip install acceldata-aio-tracer
import acceldata_aio_tracer as aio
aio.init(
service="my-app",
tenant_id="...",
project_id="...",
endpoint="https://collector.example.com",
access_key="...",
secret_key="...",
)
with aio.root_span(conversation_id=conversation_id, input_preview=user_message):
... # model calls, tools, MCP, outbound HTTP
What it does
Gives a turn a root. Chat transports like socket.io have no server span, so
without a root the model call, each tool call, each MCP handshake and every
outbound HTTP request start their own disconnected trace. root_span() opens
one span they all nest under, so a user's question is one trace.
Puts the conversation id on every span. Instrumentation libraries tag the spans they own and leave the rest bare. Measured on one application, 2 of 8 instrumentation scopes carried the id, and the untagged spans held over a million tokens — so per-conversation totals were wrong by 15%. This SDK holds the id for the duration of the turn and stamps it on every span started inside, whichever library produced it. An id a library set itself is never overwritten.
Carries the user's message even when the turn fails. The preview is set when the turn opens, not when it completes, so a request that dies before the first model call still shows what was asked.
Scope
root_span() marks a unit of work the application knows the boundaries of
and instrumentation cannot infer. A chat turn is one. So is a workflow run:
with aio.root_span(conversation_id=f"{instance_id}:{session_id}", name="workflow_run"):
...
name becomes a low-cardinality column — keep it a fixed label, never an
interpolated id.
Instrumentation
Instrumentation for models, agents and MCP ships inside the package: init()
activates whichever of those libraries is installed in your environment and
skips the rest. The FastAPI and httpx layers are the one optional extra, and
the SDK works with none of them — you still get the root span and identity on
whatever your application emits itself.
pip install 'acceldata-aio-tracer[http]'
Call init() before constructing HTTP or model clients: instrumentation patches
at import and wraps at construction, so clients built earlier are not covered.
If your application already configures OpenTelemetry, the SDK adds itself to the existing provider rather than replacing it, and warns if that provider's resource carries no tenant.
Stability
service, tenant_id, project_id and endpoint will not be renamed. The
keyword-only parameters may evolve across releases — always pass them by name.
Telemetry never breaks the application: every failure path is swallowed, and
init() returns False rather than raising when it cannot start.
Release files for acceldata-aio-tracer 1.0.0.dev1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| acceldata_aio_tracer-1.0.0.dev1.tar.gz | 493.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acceldata_aio_tracer-1.0.0.dev1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / acceldata_aio_tracer-1.0.0.dev1.tar.gz
| Download URL | acceldata_aio_tracer-1.0.0.dev1.tar.gz |
|---|---|
| Size | 493.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4d74fb4e9c26e274c2811021ebac5ee7ee617851eed0a85ec8bead0a3696904f
|
|
BLAKE2b-256 checksum How to use checksums |
7b5960219c942166b8dc2f3cacb1d7e61cf8a44a67d73b18db982c51d8c7bd3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.5 CPython/3.11.8 Darwin/25.3.0
|
Release files / acceldata_aio_tracer-1.0.0.dev1-py3-none-any.whl
| Download URL | acceldata_aio_tracer-1.0.0.dev1-py3-none-any.whl |
|---|---|
| Size | 665.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4436343d33edf68b8e96f2ccbc74403b6d455968510e0468aaf9a6af89a50c34
|
|
BLAKE2b-256 checksum How to use checksums |
eb6f1e7eeef8ec77a85e4dce0c78cc7d413088414c913f61e2bf47a36c66c8e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.5 CPython/3.11.8 Darwin/25.3.0
|