Telemetry changes#

PyTango’s telemetry support was substantially reworked in 10.3.0 to match the telemetry implementation in cppTango 10.3.0. The full details and worked examples live in the telemetry how-to guide; this section only summarises what you may need to change.

Renamed environment variables#

The telemetry environment variables now match cppTango 10.3.0. If you set any of the old names, PyTango emits a warning and ignores them for configuration (cppTango ignores them silently):

Old name (ignored)

New name

TANGO_TELEMETRY_TRACES_EXPORTER

TANGO_TELEMETRY_TRACING_EXPORTERS

TANGO_TELEMETRY_TRACES_ENDPOINT

TANGO_TELEMETRY_TRACING_ENDPOINTS

TANGO_TELEMETRY_LOGS_EXPORTER

TANGO_TELEMETRY_LOGGING_EXPORTERS

TANGO_TELEMETRY_LOGS_ENDPOINT

TANGO_TELEMETRY_LOGGING_ENDPOINTS

Update your environment to the new names. See the telemetry how-to guide for a complete example.

Runtime configuration#

Device telemetry can now be reconfigured at runtime instead of being treated as an import-time-only setup on the Python side. PyTango recreates or replaces its Python tracer providers when the cppTango runtime configuration changes. Note that for pure client scripts, the telemetry configuration is still based on the environment variables at import time. See the runtime configuration how-to.

Missing OpenTelemetry Python dependencies now warn only when telemetry is actually requested, rather than at import time.

Topics replace kernel tracing#

cppTango telemetry has switched to “topics”. The tango.server.Device.set_kernel_tracing_enabled() and tango.server.Device.is_kernel_tracing_enabled() methods have been removed — they should not have been available from within a device. To include the kernel (BaseDevice) spans, clients now enable the telemetry topic "all" instead. See telemetry topics.