ext.otel¶
otel
¶
OpenTelemetry bridge -- pre-built hooks emitting OTel spans and metrics.
Provides ready-made around and on_any hooks for observe() that
emit OpenTelemetry traces and metrics. Depends only on opentelemetry-api
(not the SDK); if no SDK is configured at runtime, all OTel calls become
zero-cost no-ops.
Example
from remote_store import observe
from remote_store.ext.otel import otel_hooks
store = observe(store, **otel_hooks())
Or as a one-liner:
Requires: pip install "remote-store[otel]"
otel_hooks
¶
otel_hooks(
*,
tracer_name: str = "remote_store",
meter_name: str = "remote_store",
tracer: Tracer | None = None,
meter: Meter | None = None,
) -> dict[str, Any]
Return hook kwargs for observe().
The returned dict contains an around context-manager hook (tracing)
and an on_any callback (metrics). Unpack it into observe():
Parameters:
-
tracer_name(str, default:'remote_store') –OTel tracer name (default
"remote_store"). Ignored when tracer is provided. -
meter_name(str, default:'remote_store') –OTel meter name (default
"remote_store"). Ignored when meter is provided. -
tracer(Tracer | None, default:None) –Explicit tracer instance. When
None(default), obtained from the globalTracerProvidervia tracer_name. -
meter(Meter | None, default:None) –Explicit meter instance. When
None(default), obtained from the globalMeterProvidervia meter_name.
Returns:
-
dict[str, Any]–A dict with
aroundandon_anykeys.
otel_observe
¶
otel_observe(
store: Store,
*,
tracer_name: str = "remote_store",
meter_name: str = "remote_store",
tracer: Tracer | None = None,
meter: Meter | None = None,
) -> ObservedStore
Convenience: wrap a Store with OTel tracing + metrics in one call.
Equivalent to observe(store, **otel_hooks(...)).
Parameters:
-
store(Store) –The Store to observe.
-
tracer_name(str, default:'remote_store') –OTel tracer name (default
"remote_store"). Ignored when tracer is provided. -
meter_name(str, default:'remote_store') –OTel meter name (default
"remote_store"). Ignored when meter is provided. -
tracer(Tracer | None, default:None) –Explicit tracer instance (see
otel_hooks()). -
meter(Meter | None, default:None) –Explicit meter instance (see
otel_hooks()).
Returns:
-
ObservedStore–An
ObservedStorewith OTel instrumentation.
See also¶
- Observe — guide to callback hooks and the OpenTelemetry bridge
- OTel Tracing example — OpenTelemetry tracing in action