Description

This article describes the changes in output for Junos Telemetry after upgrading the device from version `20.3X75-D43.22` to `21.4R3-S5.17`.

Symptoms

Monitoring tool observed missing light-level-rx metric post upgrade the device to release `21.4R3-S5.17` from `20.3X75-D43.22`.

During troubleshooting, we observed the following issues both before and after the upgrade:

Before:

 

Path prefix: /interfaces/interface[name=\'xe-11/2/3\']/optics/lanediags/

Path suffix: lane[lane_number=\'0\']/lane_laser_receiver_power_dbm

Total becoming: /interfaces/interface[name=\'xe-11/2/3\']/optics/lanediags/lane[lane_number=\'0\']/lane_laser_receiver_power_dbm

 

After:

 

Path prefix: /interfaces/interface[name=\'xe-0/0/34\']/optics/lanediags/lane[lane_number=\'0\']/

Path suffix: /lane_laser_receiver_power_dbm (There is an extra leading forward slash here vs Tx power)

Total becoming: /interfaces/interface[name=\'xe-0/0/34\']/optics/lanediags/lane[lane_number=\'0\']//lane_laser_receiver_power_dbm

 

```

 

It appears that there are two extra slashes before `lane_laser_receiver_power_dbm` in the affected devices. This discrepancy is causing our monitoring system to no longer produce the metric, as it does not align with monitoring templates.

 

We have tested in lab.

 

With Junos version: 21.4R3-S5.17

Test-Server:~$ /volume/shared/share/jtimon/jtimon --config test.conf --print

{Host:10.xxx.xxx.207 Port:6789 User: Password: xx:false Eos:false Cid: Api:{Port:0} Grpc:{Ws:0} Tls:{ClientCrt: ClientKey: Ca: ServerName:} Influx:<nil> Paths:[{Path:/junos/system/linecard/optics Freq:10000 Origin: Gnmi_submode:0 Gnmi_suppress_redundant:0 Gnmi_heartbeat_interval:0}] CStats:{pstats:0 csv_stats:false} Log:{LogFileName: FileHandle:<nil>} Gnmi:<nil> genstate_no_header:false}

gRPC headers from Junos:

 accept-encoding: [identity,gzip]

 init-response: [response { subscription_id: 2 } path_list { path: "/junos/system/linecard/optics/" sample_frequency: 10000 } ]

 content-type: [application/grpc]

 

2024/08/22 01:23:47  str_value: /interfaces/interface[name='xe-0/0/0']/optics/

2024/08/22 01:23:47  key: optics_type

2024/08/22 01:23:47  uint_value: 8

2024/08/22 01:23:47  key: module_temp

2024/08/22 01:23:47  double_value: %!d(float64=33.5890007019043)

2024/08/22 01:23:47  key: module_temp_high_alarm_threshold

2024/08/22 01:23:47  key: laser_output_power_high_alarm_threshold_dbm

2024/08/22 01:23:47  double_value: %!d(float64=-13.9)

2024/08/22 01:23:47  key: laser_rx_power_high_warning_threshold_dbm

2024/08/22 01:23:47  double_value: %!d(float64=-1)

2024/08/22 01:23:47  key: laser_rx_power_low_warning_threshold_dbm

2024/08/22 01:23:47  double_value: %!d(float64=-9.9)

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: module_temp_low_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: module_temp_high_warning

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: module_temp_low_warning

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: __prefix__

2024/08/22 01:23:47  str_value: /interfaces/interface[name='xe-0/0/0']/optics/lanediags/lane[lane_number='0']/ <<<< One forward slash after lane_number='0']

2024/08/22 01:23:47  key: lane_laser_temperature

2024/08/22 01:23:47  double_value: %!d(float64=33.5890007019043)

2024/08/22 01:23:47  key: lane_laser_output_power_dbm

2024/08/22 01:23:47  default: &{-2.1968265}

2024/08/22 01:23:47  key: /lane_laser_receiver_power_dbm <<< One forward slash before lane_

2024/08/22 01:23:47  default: &{-3.6815052}

2024/08/22 01:23:47  key: lane_laser_bias_current

2024/08/22 01:23:47  double_value: %!d(float64=5.298)

2024/08/22 01:23:47  key: lane_laser_output_power_high_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_output_power_low_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_output_power_high_warning

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_output_power_low_warning

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_receiver_power_high_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_receiver_power_low_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_receiver_power_high_warning

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_receiver_power_low_warning

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_bias_current_high_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_bias_current_low_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_bias_current_high_warning

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_laser_bias_current_low_warning

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_tx_loss_of_signal_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_rx_loss_of_signal_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

2024/08/22 01:23:47  key: lane_tx_laser_disabled_alarm

2024/08/22 01:23:47  bool_value: %!s(bool=false)

 

 

Collector Stats (Run time : 5.633176826s)

1      : in-packets

87      : data points (KV pairs)

232     : in-header wirelength (bytes)

3870     : in-payload length (bytes)

3870     : in-payload wirelength (bytes)

774     : throughput (bytes per seconds)

 

Junos: 20.3X75-D43.22

 

20.3X

'2024/08/22 01:02:44  key: __prefix__

2024/08/22 01:02:44  str_value: /interfaces/interface[name='xe-0/0/1']/optics/lanediags/ <<<< One forward slash after lanediags

2024/08/22 01:02:44  key: lane[lane_number='0']/lane_number

2024/08/22 01:02:44  uint_value: 0

2024/08/22 01:02:44  key: lane[lane_number='0']/lane_laser_temperature

2024/08/22 01:02:44  double_value: %!d(float64=28.488000869750977)

2024/08/22 01:02:44  key: lane[lane_number='0']/lane_laser_output_power_dbm <<< No forward slash before lane[lane_

2024/08/22 01:02:44  default: &{-2.3210227}

2024/08/22 01:02:44  key: lane[lane_number='0']/lane_laser_receiver_power_dbm

2024/08/22 01:02:44  default: &{-2.829957}

2024/08/22 01:02:44  key: lane[lane_number='0']/lane_laser_bias_current

2024/08/22 01:02:44  double_value: %!d(float64=6.396)'

 

 

Solution

  • Yes in new version we can see double forward slash when we add the Path prefix and Path suffix. We need to modify the monitoring metric templates to read the data.
  • Another output difference in new version we can string value till [lane_number='0']/

str_value: /interfaces/interface[name='xe-0/0/0']/optics/lanediags/lane[lane_number='0']/

  • And in old version we can see string value till lanediags/

str_value: /interfaces/interface[name='xe-0/0/1']/optics/lanediags/

Modification History

2024-09-19 : Article Created