fix(inputs.gnmi): Handle path elements without name but with keys correctly (#16542)

This commit is contained in:
Sven Rebhan 2025-03-06 12:40:11 +01:00 committed by GitHub
parent c286b4cc0f
commit 441fa9c9c6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 2877 additions and 6 deletions

View File

@ -81,10 +81,9 @@ func newInfoFromPath(paths ...*gnmi.Path) *pathInfo {
continue
}
for _, elem := range p.Elem {
if elem.Name == "" {
continue
}
if elem.Name != "" {
info.segments = append(info.segments, segment{id: elem.Name})
}
if len(elem.Key) == 0 {
continue
@ -133,10 +132,9 @@ func (pi *pathInfo) append(paths ...*gnmi.Path) *pathInfo {
// Add the new segments
for _, p := range paths {
for _, elem := range p.Elem {
if elem.Name == "" {
continue
}
if elem.Name != "" {
path.segments = append(path.segments, segment{id: elem.Name})
}
if len(elem.Key) == 0 {
continue

View File

@ -0,0 +1,11 @@
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,source=127.0.0.1 state/parent_ae_name="" 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=0,source=127.0.0.1 egress/bytes=25084650213u,egress/packets=97812973u,egress/peak_buffer_occupancy_bytes=416u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=1,source=127.0.0.1 egress/bytes=0u,egress/packets=0u,egress/peak_buffer_occupancy_bytes=0u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=2,source=127.0.0.1 egress/bytes=10957969881u,egress/packets=105352268u,egress/peak_buffer_occupancy_bytes=208u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=3,source=127.0.0.1 egress/bytes=0u,egress/packets=0u,egress/peak_buffer_occupancy_bytes=0u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=4,source=127.0.0.1 egress/bytes=0u,egress/packets=0u,egress/peak_buffer_occupancy_bytes=0u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=5,source=127.0.0.1 egress/bytes=1020800306u,egress/packets=12027619u,egress/peak_buffer_occupancy_bytes=0u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=6,source=127.0.0.1 egress/bytes=1257881347u,egress/packets=4773346u,egress/peak_buffer_occupancy_bytes=624u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=7,source=127.0.0.1 egress/bytes=0u,egress/packets=0u,egress/peak_buffer_occupancy_bytes=0u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=8,source=127.0.0.1 egress/bytes=8898987190u,egress/packets=75415151u,egress/peak_buffer_occupancy_bytes=208u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000
qmon,name=xe-0/0/0:0,path=/junos/system/linecard/qmon-sw,queue_number=9,source=127.0.0.1 egress/bytes=16919364168u,egress/packets=157255632u,egress/peak_buffer_occupancy_bytes=208u,egress/peak_buffer_occupancy_percent=0u,egress/red_drop_bytes_color_0=0u,egress/red_drop_bytes_color_1=0u,egress/red_drop_bytes_color_2=0u,egress/red_drop_bytes_color_3=0u,egress/red_drop_packets_color_0=0u,egress/red_drop_packets_color_1=0u,egress/red_drop_packets_color_2=0u,egress/red_drop_packets_color_3=0u,egress/tail_drop_bytes=0u,egress/tail_drop_packets=0u 1739811071353000000

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
[[inputs.gnmi]]
addresses = ["dummy"]
[[inputs.gnmi.subscription]]
name = "qmon"
origin = "openconfig"
path = "/junos/system/linecard/qmon-sw"
subscription_mode = "sample"
sample_interval = "60s"