Decoding Junos Telemetry Interface UDP Data at the Collector
The collector must start a listener on the remote address or port combination to read the incoming data. The incoming data can be decoded using the telemetry_top.proto and the sensor proto files.
To simplify the decoding procedure, the collectors can load all the proto files shipped as part of the Telemetry Software package to decode the incoming data.
You can use UNIX utilities to decode Junos telemetry interface data on a server, or collector see, Decoding Junos Telemetry Interface Data With UNIX Utilities
- Verify streaming data on both management and WAN interfaces. Specify the appropriate address in the streaming server profile.
- Enums and float are streamed as strings for UDP streaming. Enums will be retained as strings as gNMI uses the same format.
- The handling of float data type is scoped for a future release.
When telemetry data is streamed over UDP, ensure that data is decoded correctly, and unknown fields are not decoded at the collector.
Below are some issues observed while streaming telemetry data over UDP:
- Incorrect Decoding: Incorrect decoding implies that telemetry data is not correctly
streamed over UDP. In the following example, the data highlighted in bold indicates that the
data was not decoded correctly. This behaviour is either due to incorrect encoding or wrong
proto file packaging.
system_id: "r02.dtw01.icn" component_id: 65535 sensor_name: "mpls:/network-instances/network-instance/mpls:/network-instances/network-instance/mpls:rpd" sequence_number: 2421 timestamp: 1715024560793 version_major: 1 version_minor: 0 enterprise: { [juniperNetworks]: { [jnpr_network_instances_rsvp_ext]: { network_instance: { name: "master" mpls: { 153 { 151 { 152{ 151{ 51: "r02.dtw01.icn-r01.bos02.icn-01" 152{ 151{ 51: "AUTO" 52: 0 53: 12873154 } 152{ 151{ 51:1 52:200000 53: 0 54: 300 55: 1 61: 1549061 } 152 {
Below is the example of the data being decoded correctly:
system_id: "r0-RE0" component_id: 65535 sub_component_id: 0 sensor_name: "test_chassisd:/network-instances/:/network-instances/:rpd" sequence_number: 0 timestamp: 1719126223900 version_major: 1 version_minor: 0 enterprise { [juniperNetworks] { [jnpr_network_instances_ni_226_ext] { network_instance { name: "DEFAULT" protocols { protocol { identifier: "STATIC" name: "DEFAULT" static_routes { static { prefix: "10.0.0.0/8" state { prefix: "10.0.0.0/8" set_tag: "0" } next_hops { next_hop { index: "1" state { index: "1" next_hop: "10.220.127.254" metric: 0 recurse: false } interface_ref { state { interface: "re0:mgmt-0" subinterface: 0 } } } } }
- Incomplete data streaming: Streaming of incomplete data must be verified through data validation in the output file.