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