You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
Added configurable observability sink selection for the Python SDK and
server so control events can be routed to the default backend,
registered custom sinks, or named sink factories.
Added a built-in OpenTelemetry sink for the SDK, including OTLP
configuration via settings/environment variables.
Updated docs and exports so custom sink registration and OTEL usage are
available as public integration points.
## Scope
**User-facing/API changes:**
- Added `observability_sink_name` and `observability_sink_config` to SDK
initialization/configuration
- Exposed sink registration helpers and OTEL conversion utilities from
the Python SDK public API
- Added documented support for the SDK `otel` extra and OTEL-related
environment variables
- Added server observability sink selection/config support for named
backends
**Internal changes:**
- Introduced shared sink-selection models/registry helpers in
`telemetry/`
- Refactored SDK observability to resolve active sinks dynamically and
support named/custom sinks
- Refactored server startup/shutdown to resolve observability backends
through sink selection
- Added test coverage for sink selection, lifecycle handling, OTEL sink
behavior, and re-init/policy refresh interactions
**Out of scope:**
- No changes to core control evaluation semantics
- No UI changes
- No new non-OTEL external sink implementation included beyond
registration hooks
## Risk and Rollout
**Risk level:** medium
**Rollback plan:** Revert the sink-selection/OTEL changeset to restore
the previous default SDK-to-server observability path only. If needed,
disable custom routing by keeping `observability_sink_name=default` and
not installing/configuring the `otel` extra.
## Testing
- [x] Added or updated automated tests
- [ ] Ran `make check` — typecheck was attempted but full local `make
check` was not run because `uv` was unavailable in this environment
- [x] Manually verified behavior
## Checklist
- [ ] Linked issue/spec (if applicable)
- [x] Updated docs/examples for user-facing changes
- [ ] Included any required follow-up tasks
0 commit comments