Event/span pipeline with offline exporters for the ABI ecosystem
Project description
abi-observability
OTLP-compliant event and span pipeline with multi-backend export and built-in PII redaction. Plugs into any OpenTelemetry pipeline. Aligned with the OTel GenAI SIG semantic conventions.
Zero production dependencies. Standalone.
Install (after PyPI publication)
pip install abi-observability
Status: Not yet published to PyPI. Install from source:
pip install -e .from the repo root.
Quick start
from abi_observability import Event, Span, Collector, CollectorConfig
# Set up a collector with buffering and file-based export
config = CollectorConfig(
buffer_size=100,
flush_interval=60.0,
enabled_exporters=["file"],
auto_flush=True,
)
collector = Collector(config)
# Collect an event
event = Event(
event_id="evt-001",
event_type="MODEL_CALL",
timestamp="2026-03-13T10:00:00Z",
run_id="run-42",
payload={"model": "claude-sonnet-4-20250514", "tokens": 512},
)
collector.collect_event(event)
# Collect a span
span = Span(
span_id="span-001",
trace_id="trace-001",
name="llm.generate",
start_time="2026-03-13T10:00:00Z",
end_time="2026-03-13T10:00:01Z",
attributes={"model": "claude-sonnet-4-20250514"},
)
collector.collect_span(span)
# Flush buffered data to exporters
collector.flush()
OTel GenAI semantic conventions
from abi_observability import GenAIAttributes, to_genai_attributes
# Build OTel GenAI-compliant attributes for a span
attrs = to_genai_attributes(
system="anthropic",
model="claude-sonnet-4-20250514",
input_tokens=1500,
output_tokens=300,
)
# attrs = {"gen_ai.system": "anthropic", "gen_ai.request.model": "claude-sonnet-4-20250514", ...}
What's included
- Event and span models -- structured
EventandSpantypes with NDJSON serialization - Collector -- in-process event collector with buffering and multi-exporter support
- OTLP exporter -- sends spans in OTLP-compatible JSON (file or HTTP)
- Langfuse exporter -- optional LLM observability backend
- PII redaction -- environment variable and path scrubbing before export
- OTel GenAI SIG alignment --
GenAIAttributesconstants andto_genai_attributes()helper for interoperable telemetry - Status dashboard --
python -m abi_observability.dashboardfor pipeline visualization
Use it standalone
abi-observability works with any OpenTelemetry pipeline. Configure an exporter, point it at your collector, and start recording. No ABI ecosystem integration required.
Within the ABI ecosystem, it integrates with the orchestrator for end-to-end trace propagation across agent workflows.
ABI ecosystem
Related packages:
- abi-control-core -- contracts and audit trail SDK
- abi-evals -- eval runner and golden management
- abi-runtime -- sandboxed tool runtime
Versioning
Follows Semantic Versioning. Current version: 0.1.3. See CHANGELOG.md for release notes.
License
MIT License (see LICENSE file).
Project details
Release history Release notifications | RSS feed
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 abi_observability-0.1.3.tar.gz.
File metadata
- Download URL: abi_observability-0.1.3.tar.gz
- Upload date:
- Size: 89.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8de68bc4f76a882668cc3f95d972dbeb998ab6bc29c22c8ea544d0021ecb2990
|
|
| MD5 |
3d4618cb02947f504ee59b4537b30099
|
|
| BLAKE2b-256 |
76fb146de2c349cef0ab8452f1ce084364be9a5257238ea846aeef23ce133651
|
Provenance
The following attestation bundles were made for abi_observability-0.1.3.tar.gz:
Publisher:
publish.yml on AbilityBI/abi-observability
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abi_observability-0.1.3.tar.gz -
Subject digest:
8de68bc4f76a882668cc3f95d972dbeb998ab6bc29c22c8ea544d0021ecb2990 - Sigstore transparency entry: 1102553229
- Sigstore integration time:
-
Permalink:
AbilityBI/abi-observability@81a25e3b6a403992407e783547c4f9b22ff4762c -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/AbilityBI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@81a25e3b6a403992407e783547c4f9b22ff4762c -
Trigger Event:
push
-
Statement type:
File details
Details for the file abi_observability-0.1.3-py3-none-any.whl.
File metadata
- Download URL: abi_observability-0.1.3-py3-none-any.whl
- Upload date:
- Size: 39.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7f7c7ef4d35552b4f19c139f2bbf09eab63f04553d3ce7e8b7e3961b444b949
|
|
| MD5 |
d17904048ce627f4e7bcafcd1ae541a9
|
|
| BLAKE2b-256 |
b6fba8fc05977147b3678b090f0046145e700433ded27cbc241c26e47c3d924d
|
Provenance
The following attestation bundles were made for abi_observability-0.1.3-py3-none-any.whl:
Publisher:
publish.yml on AbilityBI/abi-observability
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abi_observability-0.1.3-py3-none-any.whl -
Subject digest:
d7f7c7ef4d35552b4f19c139f2bbf09eab63f04553d3ce7e8b7e3961b444b949 - Sigstore transparency entry: 1102553231
- Sigstore integration time:
-
Permalink:
AbilityBI/abi-observability@81a25e3b6a403992407e783547c4f9b22ff4762c -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/AbilityBI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@81a25e3b6a403992407e783547c4f9b22ff4762c -
Trigger Event:
push
-
Statement type: