Telemetry code enhancements/cleanup
-
Allow to enable telemetry via env vars from pure clients, move handling from DeviceImpl::initialize_telemetry_interface into Configuration ctor, rework SilentKernelScope handling -
Get rid of get_default_interface and friends -
We should cleanup the required dependent packages. We are currently requiring everything, but see https://github.com/open-telemetry/opentelemetry-cpp/blob/main/docs/dependencies.md#external-dependencies -
Get debug build on windows working, https://gitlab.com/tango-controls/windows-ci/opentelemetry/-/tags/v7 -
Remove TANGO_HOST from telemetry data when using nodb and or filedb -
Add env variable for DServer tracing -
Rework Interface member functions to have one pair of is_XXXandset_XXX(bool)functions for each tracing option (kernel, plain, dserver) -
Fix Interface::enable/disable which does not do anything right now. Or remove it. -
Telemetry: Seems like context isn't passed from client to device across process boundaries anymore, so spans related to same call (e.g., read_attribute) don't share the same parent. Anton thinks it was working back in December 2023, but hasn't tested with multiple processes since then (just a single process with MultiDeviceTestContext). -
Adapt release/builds gitlab CI job to account for new build variants -
Add offoption forTANGO_TELEMETRY_LOGS_EXPORTER/TANGO_TELEMETRY_TRACES_EXPORTER -
Add opentelemetry-cpp version to DeviceImpl::real_ctor() with add_version_info -
Remove StdUniqueToNostdShared, see https://github.com/open-telemetry/opentelemetry-cpp/issues/3101#issuecomment-2418969091 how this can be done. And remove the storage of gobal providers, we can always get them as singleton.
Related to !1197 (merged)
Edited by Matt Auger-Williams