errorbar-tracing
Standard OpenTelemetry, curated. One install, one line, and your LLM traffic streams to errorbar — where you grade it, calibrate a judge against your own standards, and find out with confidence intervals whether a cheaper model holds up on your production traffic.
This package contains no instrumentation code of its own. It pins and configures the ecosystem's standard OpenTelemetry instrumentations — which gives it a property no other tracing SDK offers: you can uninstall it without losing your instrumentation. The identical setup in vanilla OTel is documented below; your spans are byte-for-byte the same either way, and nothing proprietary ever goes on the wire.
Install
pip install errorbar-tracing
Use
Call once at startup, before constructing any LLM client:
from errorbar_tracing import setup
tracing = setup() # reads ERRORBAR_API_KEY and ERRORBAR_TAG
print(tracing.instrumented) # e.g. ['openai', 'anthropic'] — only what's installed
Short-lived scripts should call tracing.shutdown() before exit to flush pending spans; long-running servers can skip it.
What gets captured
OpenAI, Anthropic, Gemini, and LangChain calls — automatically, and only for libraries actually installed (the instrumented list tells you exactly which). Successful calls, streamed calls, and failed calls (stored as ERROR trace structure — the most valuable signal there is, and the one status-code dashboards can't see).
Your inference does not move: requests keep going to your current provider; only trace telemetry flows to errorbar.
Configuration
| Env var | Meaning | Default |
|---|---|---|
ERRORBAR_API_KEY |
errorbar API key — required; setup() raises rather than exporting nowhere silently |
— |
ERRORBAR_TAG |
Population tag: one tag = one evaluation population in errorbar | unset |
ERRORBAR_OTLP_ENDPOINT |
OTLP/HTTP traces endpoint | https://gateway.errorbar.ai/v1/traces |
OTEL_SERVICE_NAME |
Standard OTel service name | unset |
All options can also be passed to setup() directly; explicit options beat env vars.
The eject guarantee
Remove this package and wire the same standard pieces yourself — identical spans, same endpoint, nothing lost:
import os
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.instrumentation.anthropic import AnthropicInstrumentor
provider = TracerProvider(
resource=Resource.create({"service.name": "my-service", "errorbar.tag": "my-agent"})
)
provider.add_span_processor(
BatchSpanProcessor(
OTLPSpanExporter(
endpoint="https://gateway.errorbar.ai/v1/traces",
headers={"Authorization": f"Bearer {os.environ['ERRORBAR_API_KEY']}"},
)
)
)
AnthropicInstrumentor().instrument(tracer_provider=provider)
# ...and the other instrumentors for whichever libraries you use
Already emitting OpenTelemetry (Pydantic AI, an existing OTel setup)? You don't need this package at all — three env vars point your existing exporter at errorbar. See the OTLP ingest reference.
Privacy
Span structure is always stored. Model-call content (prompts/completions) is stored only if your errorbar workspace has request logging enabled, under your retention window, with the same scrubbing and size caps as gateway traffic.
Verify your setup — get a receipt, not a hope
ERRORBAR_API_KEY=sk_... sh -c "$(curl -fsSL https://www.errorbar.ai/setup.sh)"
Proves the key works, confirms traces are actually landing, and names your one next step. Instrumentation that fails silently is the industry default; this is the alternative.
Links
- Docs · Platform · Node package
Apache-2.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file errorbar_tracing-0.3.1.tar.gz.
File metadata
- Download URL: errorbar_tracing-0.3.1.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d82187fa1f697c0f16af35700f2b19ee7281d3edca4c7c3b99f91ea8618a3054
|
|
| MD5 |
049ee5425c5e6b96b28a3ab930768534
|
|
| BLAKE2b-256 |
72e9d1b0644f60326148549699348421fc6dd85b18fa742ce32ed7618a43872a
|
Provenance
The following attestation bundles were made for errorbar_tracing-0.3.1.tar.gz:
Publisher:
publish.yml on omnia-v/errorbar-tracing
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
errorbar_tracing-0.3.1.tar.gz -
Subject digest:
d82187fa1f697c0f16af35700f2b19ee7281d3edca4c7c3b99f91ea8618a3054 - Sigstore transparency entry: 2650990561
- Sigstore integration time:
-
Permalink:
omnia-v/errorbar-tracing@4847d4a79dff5d8812b826f64d6e4cf2ddb8ac2b -
Branch / Tag:
refs/tags/py-v0.3.1 - Owner: https://github.com/omnia-v
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4847d4a79dff5d8812b826f64d6e4cf2ddb8ac2b -
Trigger Event:
push
-
Statement type:
File details
Details for the file errorbar_tracing-0.3.1-py3-none-any.whl.
File metadata
- Download URL: errorbar_tracing-0.3.1-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fc7bdcfb0a006f8c11a876716ab335b566241c962fda74cbf07b3b6d24b8f92
|
|
| MD5 |
d5bb06870299b8bca81fd7e0fd577f80
|
|
| BLAKE2b-256 |
dec49c4cc0cfed5ea4d06969b41eb878fb3893a48e8887d42b7a998690eaebd7
|
Provenance
The following attestation bundles were made for errorbar_tracing-0.3.1-py3-none-any.whl:
Publisher:
publish.yml on omnia-v/errorbar-tracing
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
errorbar_tracing-0.3.1-py3-none-any.whl -
Subject digest:
8fc7bdcfb0a006f8c11a876716ab335b566241c962fda74cbf07b3b6d24b8f92 - Sigstore transparency entry: 2650990605
- Sigstore integration time:
-
Permalink:
omnia-v/errorbar-tracing@4847d4a79dff5d8812b826f64d6e4cf2ddb8ac2b -
Branch / Tag:
refs/tags/py-v0.3.1 - Owner: https://github.com/omnia-v
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4847d4a79dff5d8812b826f64d6e4cf2ddb8ac2b -
Trigger Event:
push
-
Statement type: