RFC 19 The Tango Telemetry Service
# Requestors: * Benjamin * Reynald * Yury * Thomas B. * Vincent # Materials: * https://gitlab.com/groups/tango-controls/-/epics/3 * https://opentelemetry.io/docs/concepts/observability-primer/#reliability-and-metrics # Description The Tango Telemetry Service aims to make Tango compatible with the [OpenTelemetry RFC](https://opentelemetry.io/docs/specs/otel/). This Tango Telemetry Service does not replace the Tango Logging [RFC14 Logging](https://gitlab.com/tango-controls/rfc/-/blob/main/14/Logging.md?ref_type=heads). Version targeted: 10 Feature targeted: * Support of logs and traces (Mandatory) * support of metrics (V10: Optional) Prototype: exist as a full release cpptango-10 Standard instrumentation: Would be good to recommend a standard behavior i.e reading attributes, execute command, ... # Impact: * [RFC10](https://gitlab.com/tango-controls/rfc/-/blob/logging-extension/10/RequestReply.md?ref_type=heads) Require IDL v6 to pass a new Client Identification. https://gitlab.com/tango-controls/tango-idl/-/issues/17#note_1644987215 and https://gitlab.com/tango-controls/cppTango/-/commit/c3a65891e6ff7522197ad7a98617ce7d467d5047 * New environment variables (https://tango-controls.readthedocs.io/projects/pytango/en/latest/how-to/telemetry.html#how-to-run-a-device-server-that-emits-telemetry) / https://gitlab.com/tango-controls/tango-doc/-/issues/403 To double check: * [ ] The impact on the Blackbox. It may require to open the identification of the client to more than a PID. # 19/The Tango Telemetry Service ## Introduction ## Preamble ## Goals ## Use Cases * Distributing logging * Profiling * Debugging * Audit for future security feature in Tango ## Specification OpenTelemetry compatibility ### Environment variables ### Traces * definition of the standard instrumentation * list most interactions: (no existing materials) - server/client side: - read/write attr - set attribute config - set pipe config - read/write pipe - execute command - **NEW since 2025-07-31: Pub/Sub support** Not yet done or done indirectly through the Tango Database API: - Property/Tango Database API - Configuration: polling, event subscription, event - attribute properties ### Logging Just mention that all logs from RFC14 are reported to the Telemetry service ## Recommendations * To allow custom spans and add more information to the current spans. No naming convention required. * trace private/internal method calls of the tango implementation #Action: - [ ] (VH) Create RFC MR with the structure defined above - [ ] (VH and al.) W50 Work on the wording - [ ] (All) W51 Review - [ ] Meeting 19th December, preferences morning
issue