Observability¶
Tracing, metrics, and a zero-dependency event hook for OpenTelemetry wiring.
Auto-generated docs
When trails is installed, run ENABLE_MKDOCSTRINGS=true ./scripts/docs-build
for full docstring-extracted reference.
Event hook (observer API)¶
| Symbol | Signature | Description |
|---|---|---|
register_observer |
register_observer(callback: Callable[[str, dict], None]) -> None |
Register a callback to receive every emitted event. Observers are best-effort (exceptions caught + logged) |
unregister_observer |
unregister_observer(callback) -> None |
Remove the first registration of a callback. No-op if not registered |
clear_observers |
clear_observers() -> None |
Remove every registered observer (test helper) |
emit |
emit(kind: EventKind, **fields) -> None |
Fire an event to every registered observer |
Event types¶
EventKind is a Literal type covering these event kinds:
| Event kind | Description |
|---|---|
"capability_started" |
Fired at the start of a capability invocation |
"capability_completed" |
Fired on successful completion |
"capability_failed" |
Fired when a capability handler raises |
"llm_call" |
Fired after each LLM completion |
"kg_write" |
Fired after KG write operations (add, save, update) |
"kg_query" |
Fired after KG read operations (query, match) |
OTLP export¶
| Symbol | Signature | Description |
|---|---|---|
enable_otlp |
enable_otlp(endpoint: str \| None = None, service_name: str = "trails") -> OTLPExporter |
Create an OTLPExporter and register it as an observer. Requires opentelemetry-sdk |
OTLPExporter |
OTLPExporter(endpoint: str \| None = None, service_name: str = "trails") |
Observer that converts Trails events into OpenTelemetry spans |
Tracing and metrics¶
| Symbol | Signature | Description |
|---|---|---|
tracer |
TrailsTracer (module singleton) |
Lightweight in-memory tracer with JSON logging |
metrics |
TrailsMetrics (module singleton) |
In-memory metrics for capability invocations (counters + latency) |
prom_metrics |
MetricsRegistry (module singleton) |
Prometheus-compatible metrics registry with text exposition rendering |