To support uniquely identifying client systems whose telemetry bundles may have been relayed through one or more levels of relay server, we will need to be able to calculate a routing path for received telemetry.
When a telemetry report is received by a telemetry relay it will extract the telemetry bundles from the report and stage them in the relay's persistent data store. As part of doing so it will add an annotation tag, RELAYED_VIA, specifying the client id of the client that submitted the report that contained the bundle and the relay server's own client id.
The routing path is intended to be used in conjunction with the client id of the telemetry client that generated the telemetry to track telemetry provided by that client over time.
The routing path of telemetry is calculated as the sorted set of RELAYED_VIA tag values associated with a telemetry bundle, and can be NULL if there were no relay servers involved.
The tag set type provided by the Telemetry Client Library SUSE/telemetry#5 telemetry#5 should help with implementing this.
To support uniquely identifying client systems whose telemetry bundles may have been relayed through one or more levels of relay server, we will need to be able to calculate a routing path for received telemetry.
When a telemetry report is received by a telemetry relay it will extract the telemetry bundles from the report and stage them in the relay's persistent data store. As part of doing so it will add an annotation tag, RELAYED_VIA, specifying the client id of the client that submitted the report that contained the bundle and the relay server's own client id.
The routing path is intended to be used in conjunction with the client id of the telemetry client that generated the telemetry to track telemetry provided by that client over time.
The routing path of telemetry is calculated as the sorted set of RELAYED_VIA tag values associated with a telemetry bundle, and can be NULL if there were no relay servers involved.
The tag set type provided by the Telemetry Client Library SUSE/telemetry#5 telemetry#5 should help with implementing this.