Uh oh!
There was an error while loading. Please reload this page.
feat(sdk): add otel support - #177
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
lan17
left a comment
There was a problem hiding this comment.
I like having a built-in OTEL path, but I don't think this version is safe to merge yet. Right now the SDK can tell callers observability is working while the OTEL sink is effectively inert, and the caching logic doesn't compose cleanly with the new otel_* settings. I'd also mark failed control executions as OTEL errors rather than only attaching an exception object.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
namrataghadi-galileo
commented
Apr 19, 2026
@lan17 Thanks, this was a good catch. I fixed the three unsafe parts you called out: The built-in otel sink no longer counts as active when it can’t actually export. If OTEL is disabled, deps are missing, or there’s no exporter configuration, we now treat that sink as inert for observability selection instead of reporting observability as working. |
… feature/61578-add-otel-support
lan17
left a comment
There was a problem hiding this comment.
Nice work on tightening up the earlier OTEL issues. I found one remaining opt-out case that I think should be fixed before merge: an explicit observability_enabled=False can still leave the selected OTEL sink active for later writes.
Uh oh!
There was an error while loading. Please reload this page.
lan17
left a comment
There was a problem hiding this comment.
Thanks for working through the review feedback, Namrata. I did a fresh pass from the latest head, including the opt-out path and the OTEL sink/cache behavior, and this looks good to me now.
Uh oh!
There was an error while loading. Please reload this page.
## [2.6.0](ts-sdk-v2.5.0...ts-sdk-v2.6.0) (2026-05-28) ### Features * **evaluators:** add new lluna client ([#213](#213)) ([f65beb9](f65beb9)) * **sdk:** add otel support ([#177](#177)) ([9530368](9530368)) * **sdk:** add runtime token auth ([#215](#215)) ([6cc0f38](6cc0f38)) * **server:** add control clone-and-bind endpoint ([#229](#229)) ([1728bf9](1728bf9)) * **server:** add runtime auth and namespace scoping ([#214](#214)) ([56e44fe](56e44fe)) * **server:** allow host-owned logging setup ([#227](#227)) ([c0fd159](c0fd159)) * **server:** bundle migrations in wheel and add agent-control-migrate ([#209](#209)) ([8c5c35e](8c5c35e)) * **server:** migrate controls routes to auth framework ([#212](#212)) ([764bd4b](764bd4b)) ### Bug Fixes * **examples:** declare local SDK workspace deps ([#222](#222)) ([d22aa1d](d22aa1d)) * **sdk:** Get trace context from provider ([#211](#211)) ([1efe30f](1efe30f)) * **sdk-ts:** normalize generated client ([#231](#231)) ([1c097d2](1c097d2)) * **server:** make observability migration retry-safe ([#226](#226)) ([b9dd00d](b9dd00d)) * **server:** prevent migration lock transactions ([#224](#224)) ([e65a2f4](e65a2f4)) * **server:** scope auth upstream CA to HTTP provider ([#232](#232)) ([7a0ce21](7a0ce21)) * **ui:** fix editing of controls in the UI ([#218](#218)) ([981e33d](981e33d)), closes [#Risk](https://github.com/agentcontrol/agent-control/issues/Risk)
galileo-automation
commented
May 28, 2026
🎉 This PR is included in version 2.6.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
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:
observability_sink_nameandobservability_sink_configto SDK initialization/configurationotelextra and OTEL-related environment variablesInternal changes:
telemetry/Out of scope:
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=defaultand not installing/configuring theotelextra.Testing
make check— typecheck was attempted but full localmake checkwas not run becauseuvwas unavailable in this environmentChecklist