influxdata / telegraf

Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
https://influxdata.com/telegraf
MIT License
14.51k stars 5.55k forks source link

gnmi plugin: Subscribing to Ciena device - empty name for update path #12290

Closed whizkidTRW closed 1 year ago

whizkidTRW commented 1 year ago

Relevant telegraf.conf

[[inputs.gnmi]]
  addresses = ["10.255.30.5:6702","10.255.30.6:6702","10.255.30.14:6702","10.255.30.33:6702","10.255.32.14:6702"]
  username = "XXXXXXX"
  password = "XXXXXXX"
  encoding = "proto"
  redial = "10s"
  enable_tls = true
  tls_ca = "/etc/telegraf/ca.cert.pem"
  insecure_skip_verify = true
  tls_cert = "/etc/telegraf/client.cert.pem"
  tls_key = "/etc/telegraf/client.key.pem"
  name_override = "saos10xgnmi"
  updates_only = true

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/oc-if:interfaces/oc-if:interface[name=7]/oc-if:state/oc-if:counters"
     subscription_mode = "sample"
     sample_interval = "10s"

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/oc-if:interfaces/oc-if:interface[name=9]/oc-if:state/oc-if:counters"
     subscription_mode = "sample"
     sample_interval = "10s"

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/oc-if:interfaces/oc-if:interface[name=28]/oc-if:state/oc-if:counters"
     subscription_mode = "sample"
     sample_interval = "10s"

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/oc-if:interfaces/oc-if:interface[name=33]/oc-if:state/oc-if:counters"
     subscription_mode = "sample"
     sample_interval = "10s"     

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/oc-if:interfaces/oc-if:interface[name=36]/oc-if:state/oc-if:counters"
     subscription_mode = "sample"
     sample_interval = "10s"

Logs from Telegraf

root@c6b7745a8a68:/usr/local/src/telegraf-1.25.0/usr/bin# ./telegraf --config /etc/telegraf/telegraf-ciena.conf --test-wait 30 --debug
2022-11-28T15:03:09Z I! Starting Telegraf 1.25.0-3bac06bc
2022-11-28T15:03:09Z I! Available plugins: 227 inputs, 9 aggregators, 26 processors, 21 parsers, 57 outputs
2022-11-28T15:03:09Z I! Loaded inputs: gnmi
2022-11-28T15:03:09Z I! Loaded aggregators: 
2022-11-28T15:03:09Z I! Loaded processors: 
2022-11-28T15:03:09Z W! Outputs are not used in testing mode!
2022-11-28T15:03:09Z I! Tags enabled: host=10.5.200.224
2022-11-28T15:03:09Z D! [agent] Initializing plugins
2022-11-28T15:03:09Z D! [agent] Starting service inputs
2022-11-28T15:03:09Z D! [inputs.gnmi] Internal alias mapping: map[oc-if:/interfaces/oc-if:interface/oc-if:state/oc-if:counters:ifcounters openconfig-interfaces:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters:ifcounters]
2022-11-28T15:03:09Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.5:6702 established
2022-11-28T15:03:09Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.6:6702 established
2022-11-28T15:03:09Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.14:6702 established
2022-11-28T15:03:09Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.33:6702 established
2022-11-28T15:03:09Z D! [inputs.gnmi] Connection to gNMI device 10.255.32.14:6702 established
2022-11-28T15:03:20Z E! [inputs.gnmi] Error in plugin: got empty name for update path:{origin:"Ciena"  elem:{name:"in-1024-to-1518-octet-pkts"}}  val:{uint_val:0}
2022-11-28T15:03:20Z E! [inputs.gnmi] Error in plugin: got empty name for update path:{origin:"Ciena"  elem:{name:"in-128-to-255-octet-pkts"}}  val:{uint_val:0}
2022-11-28T15:03:20Z E! [inputs.gnmi] Error in plugin: got empty name for update path:{origin:"Ciena"  elem:{name:"in-1519-to-2047-octet-pkts"}}  val:{uint_val:0}
2022-11-28T15:03:20Z E! [inputs.gnmi] Error in plugin: got empty name for update path:{origin:"Ciena"  elem:{name:"in-2048-to-4095-octet-pkts"}}  val:{uint_val:0}
2022-11-28T15:03:20Z E! [inputs.gnmi] Error in plugin: got empty name for update path:{origin:"Ciena"  elem:{name:"in-256-to-511-octet-pkts"}}  val:{uint_val:0}
. . .
Output truncated, full output attached.

System info

Telegraf 1.25.0 PR #12272, Docker 20.10.5, Debian 11/bullseye

Docker

telegraf: image: telegraf container_name: telegraf restart: always volumes:

Steps to reproduce

  1. Using Telegraf 1.25.0 PR #12273, connect to any Ciena SAOS 10.7.0+ device
  2. No specific configuration on Ciena device required
  3. Test command: telegraf --config /etc/telegraf/telegraf-ciena.conf --test-wait 30 --debug ...

Expected behavior

Properly received and parsed values

Actual behavior

Errors on update with empty name for update path:{origin:"Ciena" for every value returned from the Ciena device.

Additional info

Extension of defect fixed in PR #12273: https://github.com/influxdata/telegraf/issues/11903

whizkidTRW commented 1 year ago

Full debug output. ciena-gnmi.log

srebhan commented 1 year ago

@whizkidTRW can you please provide the full error message, i.e. a complete path/message that fails!?

whizkidTRW commented 1 year ago

@srebhan, all of the output I get is in the attached log. It appears that any element returned is generating this error.

jgeorge1234 commented 1 year ago

can someone help on the certificates.

tls_ca = "/etc/telegraf/ca.cert.pem" insecure_skip_verify = true tls_cert = "/etc/telegraf/client.cert.pem" tls_key = "/etc/telegraf/client.key.pem"

I used self signed certificates but its throwing error unknown Certificate authority error

srebhan commented 1 year ago

@jgeorge1234 how is your message related to this issue?

srebhan commented 1 year ago

@whizkidTRW I see the logs now... :man_facepalming:

srebhan commented 1 year ago

@whizkidTRW it seems like your device replies with a different origin (Ciena) and an empty path compared to your subscription... Just for me to understand, why do you put another origin in the path instead of using

 [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/interfaces/interface[name=7]/state/counters"
     subscription_mode = "sample"
     sample_interval = "10s"
whizkidTRW commented 1 year ago

Great question! I have inherited this setup from a coworker who is no longer with the company . . . It was working this way pre 1.24.0 but I wondered that myself. When changing the 5 subscriptions to match your suggestion, I no longer get errors but I don't get any output either:

root@6c3462af89b0:/usr/local/src/telegraf-1.25.0/usr/bin# ./telegraf --config /etc/telegraf/telegraf-ciena.conf --test-wait 30 --debug       
2022-11-29T15:40:59Z I! Starting Telegraf 1.25.0-3bac06bc
2022-11-29T15:40:59Z I! Available plugins: 227 inputs, 9 aggregators, 26 processors, 21 parsers, 57 outputs
2022-11-29T15:40:59Z I! Loaded inputs: gnmi
2022-11-29T15:40:59Z I! Loaded aggregators: 
2022-11-29T15:40:59Z I! Loaded processors: 
2022-11-29T15:40:59Z W! Outputs are not used in testing mode!
2022-11-29T15:40:59Z I! Tags enabled: host=10.5.200.224
2022-11-29T15:40:59Z D! [agent] Initializing plugins
2022-11-29T15:40:59Z D! [agent] Starting service inputs
2022-11-29T15:40:59Z D! [inputs.gnmi] Internal alias mapping: map[/interfaces/interface/state/counters:ifcounters openconfig-interfaces:/interfaces/interface/state/counters:ifcounters]
2022-11-29T15:40:59Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.6:6702 established
2022-11-29T15:40:59Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.5:6702 established
2022-11-29T15:40:59Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.14:6702 established
2022-11-29T15:40:59Z D! [inputs.gnmi] Connection to gNMI device 10.255.32.14:6702 established
2022-11-29T15:40:59Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.33:6702 established
2022-11-29T15:41:29Z D! [agent] Stopping service inputs
2022-11-29T15:41:29Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.14:6702 closed
2022-11-29T15:41:29Z D! [inputs.gnmi] Connection to gNMI device 10.255.32.14:6702 closed
2022-11-29T15:41:29Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.5:6702 closed
2022-11-29T15:41:29Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.6:6702 closed
2022-11-29T15:41:29Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.33:6702 closed
2022-11-29T15:41:29Z D! [agent] Input channel closed
2022-11-29T15:41:29Z D! [agent] Stopped Successfully

Here's the config I just tested with:

[global_tags]

[agent]
  interval = "5m"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "60s"
  flush_jitter = "0s"
  precision = ""
  hostname = "10.5.200.224"
  omit_hostname = false

[[outputs.influxdb]]
  urls = ["http://influxdb:8086"]
  database = "influx"
  timeout = "5s"
  username = "telegraf"
  password = "metrics"

[[inputs.gnmi]]
  addresses = ["10.255.30.5:6702","10.255.30.6:6702","10.255.30.14:6702","10.255.30.33:6702","10.255.32.14:6702"]
  username = "XXXXXX"
  password = "XXXXXX"
  encoding = "proto"
  redial = "10s"
  enable_tls = true
  tls_ca = "/etc/telegraf/ca.cert.pem"
  insecure_skip_verify = true
  tls_cert = "/etc/telegraf/client.cert.pem"
  tls_key = "/etc/telegraf/client.key.pem"
  name_override = "saos10xgnmi"
  updates_only = true

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/interfaces/interface[name=7]/state/counters"
     subscription_mode = "sample"
     sample_interval = "10s"

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/interfaces/interface[name=9]/state/counters"
     subscription_mode = "sample"
     sample_interval = "10s"

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/interfaces/interface[name=28]/state/counters"
     subscription_mode = "sample"
     sample_interval = "10s"

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/interfaces/interface[name=33]/state/counters"
     subscription_mode = "sample"
     sample_interval = "10s"    

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "openconfig-interfaces"
     path = "/interfaces/interface[name=36]/state/counters"
     subscription_mode = "sample"
     sample_interval = "10s"  
whizkidTRW commented 1 year ago

Success! After trying various combinations of origin and paths, it appears that for Ciena SAOS 10.x, the Origin has to be "Ciena" and the path must include oc-if at each branch. Debug output and sample config below.

@srebhan, is this expected behavior per the code because the Ciena boxes are just weird or is this still a bug?

root@6c3462af89b0:/usr/local/src/telegraf-1.25.0/usr/bin# ./telegraf --config /etc/telegraf/telegraf-ciena.conf --test-wait 30 --debug
2022-11-29T16:04:18Z I! Starting Telegraf 1.25.0-3bac06bc
2022-11-29T16:04:18Z I! Available plugins: 227 inputs, 9 aggregators, 26 processors, 21 parsers, 57 outputs
2022-11-29T16:04:18Z I! Loaded inputs: gnmi
2022-11-29T16:04:18Z I! Loaded aggregators: 
2022-11-29T16:04:18Z I! Loaded processors: 
2022-11-29T16:04:18Z W! Outputs are not used in testing mode!
2022-11-29T16:04:18Z I! Tags enabled: host=10.5.200.224
2022-11-29T16:04:18Z D! [agent] Initializing plugins
2022-11-29T16:04:18Z D! [agent] Starting service inputs
2022-11-29T16:04:18Z D! [inputs.gnmi] Internal alias mapping: map[Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters:ifcounters oc-if:/interfaces/oc-if:interface/oc-if:state/oc-if:counters:ifcounters]
2022-11-29T16:04:18Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.5:6702 established
2022-11-29T16:04:18Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.6:6702 established
2022-11-29T16:04:18Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.14:6702 established
2022-11-29T16:04:18Z D! [inputs.gnmi] Connection to gNMI device 10.255.32.14:6702 established
2022-11-29T16:04:18Z D! [inputs.gnmi] Connection to gNMI device 10.255.30.33:6702 established
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.30.6 iena:/in_1024_to_1518_octet_pkts=130685514i,iena:/in_128_to_255_octet_pkts=170263458i,iena:/in_1519_to_2047_octet_pkts=123122627i,iena:/in_2048_to_4095_octet_pkts=194i,iena:/in_256_to_511_octet_pkts=45169738i,iena:/in_4096_to_9216_octet_pkts=4i,iena:/in_512_to_1023_octet_pkts=36455766i,iena:/in_64_octet_pkts=1151230i,iena:/in_65_to_127_octet_pkts=1408977233i,iena:/in_broadcast_pkts=83286i,iena:/in_crc_error_pkts=0i,iena:/in_discards=68794i,iena:/in_discards_octets=21936067i,iena:/in_dropped_octets=21936067i,iena:/in_dropped_pkts=68794i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=656428i,iena:/in_octets=572231642723i,iena:/in_oversize_pkts=0i,iena:/in_pkts=1915825764i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=1915086050i,iena:/last_clear=1668064364373643505i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=3093531284i,iena:/out_2048_to_4095_octet_pkts=596i,iena:/out_4096_to_9216_octet_pkts=3i,iena:/out_broadcast_pkts=33477i,iena:/out_errors=0i,iena:/out_multicast_pkts=646775i,iena:/out_octets=8579061792202i,iena:/out_pkts=6364510444i,iena:/out_unicast_pkts=6363830192i 1669737869225000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.30.14 iena:/in_1024_to_1518_octet_pkts=0i,iena:/in_128_to_255_octet_pkts=0i,iena:/in_1519_to_2047_octet_pkts=0i,iena:/in_2048_to_4095_octet_pkts=0i,iena:/in_256_to_511_octet_pkts=0i,iena:/in_4096_to_9216_octet_pkts=0i,iena:/in_512_to_1023_octet_pkts=0i,iena:/in_64_octet_pkts=0i,iena:/in_65_to_127_octet_pkts=0i,iena:/in_broadcast_pkts=0i,iena:/in_crc_error_pkts=0i,iena:/in_discards=0i,iena:/in_discards_octets=0i,iena:/in_dropped_octets=0i,iena:/in_dropped_pkts=0i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=0i,iena:/in_octets=0i,iena:/in_oversize_pkts=0i,iena:/in_pkts=0i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=0i,iena:/last_clear=1668066130851299168i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=0i,iena:/out_2048_to_4095_octet_pkts=0i,iena:/out_4096_to_9216_octet_pkts=0i,iena:/out_broadcast_pkts=0i,iena:/out_errors=0i,iena:/out_multicast_pkts=0i,iena:/out_octets=0i,iena:/out_pkts=0i,iena:/out_unicast_pkts=0i 1669737869316000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.30.5 iena:/in_1024_to_1518_octet_pkts=2781419089i,iena:/in_128_to_255_octet_pkts=2767369117i,iena:/in_1519_to_2047_octet_pkts=2829224364i,iena:/in_2048_to_4095_octet_pkts=205i,iena:/in_256_to_511_octet_pkts=691462811i,iena:/in_4096_to_9216_octet_pkts=8i,iena:/in_512_to_1023_octet_pkts=585508964i,iena:/in_64_octet_pkts=579441i,iena:/in_65_to_127_octet_pkts=35044108318i,iena:/in_broadcast_pkts=75105i,iena:/in_crc_error_pkts=0i,iena:/in_discards=147950i,iena:/in_discards_octets=62126765i,iena:/in_dropped_octets=62126765i,iena:/in_dropped_pkts=147950i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=17336808i,iena:/in_octets=12608817371280i,iena:/in_oversize_pkts=0i,iena:/in_pkts=44699672328i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=44682260415i,iena:/last_clear=1668065440890641559i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=53276499101i,iena:/out_2048_to_4095_octet_pkts=554i,iena:/out_4096_to_9216_octet_pkts=7i,iena:/out_broadcast_pkts=33457i,iena:/out_errors=0i,iena:/out_multicast_pkts=17314869i,iena:/out_octets=135466854661114i,iena:/out_pkts=98820903154i,iena:/out_unicast_pkts=98803554828i 1669737869330000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.32.14 iena:/in_1024_to_1518_octet_pkts=0i,iena:/in_128_to_255_octet_pkts=0i,iena:/in_1519_to_2047_octet_pkts=0i,iena:/in_2048_to_4095_octet_pkts=0i,iena:/in_256_to_511_octet_pkts=0i,iena:/in_4096_to_9216_octet_pkts=0i,iena:/in_512_to_1023_octet_pkts=0i,iena:/in_64_octet_pkts=0i,iena:/in_65_to_127_octet_pkts=0i,iena:/in_broadcast_pkts=0i,iena:/in_crc_error_pkts=0i,iena:/in_discards=0i,iena:/in_discards_octets=0i,iena:/in_dropped_octets=0i,iena:/in_dropped_pkts=0i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=0i,iena:/in_octets=0i,iena:/in_oversize_pkts=0i,iena:/in_pkts=0i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=0i,iena:/last_clear=1668589636272545872i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=0i,iena:/out_2048_to_4095_octet_pkts=0i,iena:/out_4096_to_9216_octet_pkts=0i,iena:/out_broadcast_pkts=0i,iena:/out_errors=0i,iena:/out_multicast_pkts=0i,iena:/out_octets=0i,iena:/out_pkts=0i,iena:/out_unicast_pkts=0i 1669737869395000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.30.33 iena:/in_1024_to_1518_octet_pkts=0i,iena:/in_128_to_255_octet_pkts=0i,iena:/in_1519_to_2047_octet_pkts=0i,iena:/in_2048_to_4095_octet_pkts=0i,iena:/in_256_to_511_octet_pkts=0i,iena:/in_4096_to_9216_octet_pkts=0i,iena:/in_512_to_1023_octet_pkts=0i,iena:/in_64_octet_pkts=0i,iena:/in_65_to_127_octet_pkts=0i,iena:/in_broadcast_pkts=0i,iena:/in_crc_error_pkts=0i,iena:/in_discards=0i,iena:/in_discards_octets=0i,iena:/in_dropped_octets=0i,iena:/in_dropped_pkts=0i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=0i,iena:/in_octets=0i,iena:/in_oversize_pkts=0i,iena:/in_pkts=0i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=0i,iena:/last_clear=1668013420509341331i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=0i,iena:/out_2048_to_4095_octet_pkts=0i,iena:/out_4096_to_9216_octet_pkts=0i,iena:/out_broadcast_pkts=0i,iena:/out_errors=0i,iena:/out_multicast_pkts=0i,iena:/out_octets=0i,iena:/out_pkts=0i,iena:/out_unicast_pkts=0i 1669737869457000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.30.6 iena:/in_1024_to_1518_octet_pkts=130685735i,iena:/in_128_to_255_octet_pkts=170264296i,iena:/in_1519_to_2047_octet_pkts=123122747i,iena:/in_2048_to_4095_octet_pkts=194i,iena:/in_256_to_511_octet_pkts=45169911i,iena:/in_4096_to_9216_octet_pkts=4i,iena:/in_512_to_1023_octet_pkts=36455857i,iena:/in_64_octet_pkts=1151238i,iena:/in_65_to_127_octet_pkts=1408981072i,iena:/in_broadcast_pkts=83288i,iena:/in_crc_error_pkts=0i,iena:/in_discards=68795i,iena:/in_discards_octets=21936443i,iena:/in_dropped_octets=21936443i,iena:/in_dropped_pkts=68795i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=656431i,iena:/in_octets=572232834581i,iena:/in_oversize_pkts=0i,iena:/in_pkts=1915831054i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=1915091335i,iena:/last_clear=1668064364373643505i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=3093536271i,iena:/out_2048_to_4095_octet_pkts=596i,iena:/out_4096_to_9216_octet_pkts=3i,iena:/out_broadcast_pkts=33477i,iena:/out_errors=0i,iena:/out_multicast_pkts=646779i,iena:/out_octets=8579078827620i,iena:/out_pkts=6364524545i,iena:/out_unicast_pkts=6363844289i 1669737879225000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.30.14 iena:/in_1024_to_1518_octet_pkts=0i,iena:/in_128_to_255_octet_pkts=0i,iena:/in_1519_to_2047_octet_pkts=0i,iena:/in_2048_to_4095_octet_pkts=0i,iena:/in_256_to_511_octet_pkts=0i,iena:/in_4096_to_9216_octet_pkts=0i,iena:/in_512_to_1023_octet_pkts=0i,iena:/in_64_octet_pkts=0i,iena:/in_65_to_127_octet_pkts=0i,iena:/in_broadcast_pkts=0i,iena:/in_crc_error_pkts=0i,iena:/in_discards=0i,iena:/in_discards_octets=0i,iena:/in_dropped_octets=0i,iena:/in_dropped_pkts=0i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=0i,iena:/in_octets=0i,iena:/in_oversize_pkts=0i,iena:/in_pkts=0i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=0i,iena:/last_clear=1668066130851299168i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=0i,iena:/out_2048_to_4095_octet_pkts=0i,iena:/out_4096_to_9216_octet_pkts=0i,iena:/out_broadcast_pkts=0i,iena:/out_errors=0i,iena:/out_multicast_pkts=0i,iena:/out_octets=0i,iena:/out_pkts=0i,iena:/out_unicast_pkts=0i 1669737879316000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.30.5 iena:/in_1024_to_1518_octet_pkts=2781432343i,iena:/in_128_to_255_octet_pkts=2767386344i,iena:/in_1519_to_2047_octet_pkts=2829228124i,iena:/in_2048_to_4095_octet_pkts=205i,iena:/in_256_to_511_octet_pkts=691466618i,iena:/in_4096_to_9216_octet_pkts=8i,iena:/in_512_to_1023_octet_pkts=585515712i,iena:/in_64_octet_pkts=579448i,iena:/in_65_to_127_octet_pkts=35044214529i,iena:/in_broadcast_pkts=75106i,iena:/in_crc_error_pkts=0i,iena:/in_discards=147950i,iena:/in_discards_octets=62126765i,iena:/in_dropped_octets=62126765i,iena:/in_dropped_pkts=147950i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=17336916i,iena:/in_octets=12608858882307i,iena:/in_oversize_pkts=0i,iena:/in_pkts=44699823347i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=44682411325i,iena:/last_clear=1668065440890641559i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=53276671255i,iena:/out_2048_to_4095_octet_pkts=554i,iena:/out_4096_to_9216_octet_pkts=7i,iena:/out_broadcast_pkts=33458i,iena:/out_errors=0i,iena:/out_multicast_pkts=17314975i,iena:/out_octets=135467368511597i,iena:/out_pkts=98821293118i,iena:/out_unicast_pkts=98803944685i 1669737879330000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.32.14 iena:/in_1024_to_1518_octet_pkts=0i,iena:/in_128_to_255_octet_pkts=0i,iena:/in_1519_to_2047_octet_pkts=0i,iena:/in_2048_to_4095_octet_pkts=0i,iena:/in_256_to_511_octet_pkts=0i,iena:/in_4096_to_9216_octet_pkts=0i,iena:/in_512_to_1023_octet_pkts=0i,iena:/in_64_octet_pkts=0i,iena:/in_65_to_127_octet_pkts=0i,iena:/in_broadcast_pkts=0i,iena:/in_crc_error_pkts=0i,iena:/in_discards=0i,iena:/in_discards_octets=0i,iena:/in_dropped_octets=0i,iena:/in_dropped_pkts=0i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=0i,iena:/in_octets=0i,iena:/in_oversize_pkts=0i,iena:/in_pkts=0i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=0i,iena:/last_clear=1668589636272545872i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=0i,iena:/out_2048_to_4095_octet_pkts=0i,iena:/out_4096_to_9216_octet_pkts=0i,iena:/out_broadcast_pkts=0i,iena:/out_errors=0i,iena:/out_multicast_pkts=0i,iena:/out_octets=0i,iena:/out_pkts=0i,iena:/out_unicast_pkts=0i 1669737879394000000
> saos10xgnmi,host=10.5.200.224,name=7,path=Ciena:/oc-if:interfaces/oc-if:interface/oc-if:state/oc-if:counters,source=10.255.30.33 iena:/in_1024_to_1518_octet_pkts=0i,iena:/in_128_to_255_octet_pkts=0i,iena:/in_1519_to_2047_octet_pkts=0i,iena:/in_2048_to_4095_octet_pkts=0i,iena:/in_256_to_511_octet_pkts=0i,iena:/in_4096_to_9216_octet_pkts=0i,iena:/in_512_to_1023_octet_pkts=0i,iena:/in_64_octet_pkts=0i,iena:/in_65_to_127_octet_pkts=0i,iena:/in_broadcast_pkts=0i,iena:/in_crc_error_pkts=0i,iena:/in_discards=0i,iena:/in_discards_octets=0i,iena:/in_dropped_octets=0i,iena:/in_dropped_pkts=0i,iena:/in_errors=0i,iena:/in_jabber_pkts=0i,iena:/in_multicast_pkts=0i,iena:/in_octets=0i,iena:/in_oversize_pkts=0i,iena:/in_pkts=0i,iena:/in_undersize_pkts=0i,iena:/in_unicast_pkts=0i,iena:/last_clear=1668013420509341331i,iena:/link_flap_events=0i,iena:/name="\"7\"",iena:/out_1519_to_2047_octet_pkts=0i,iena:/out_2048_to_4095_octet_pkts=0i,iena:/out_4096_to_9216_octet_pkts=0i,iena:/out_broadcast_pkts=0i,iena:/out_errors=0i,iena:/out_multicast_pkts=0i,iena:/out_octets=0i,iena:/out_pkts=0i,iena:/out_unicast_pkts=0i 1669737879454000000
^C2022-11-29T16:04:40Z E! [agent] SleepContext finished with: context canceled

Config (I shortened the subscriptions down to one for path testing):

[global_tags]

[agent]
  interval = "5m"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "60s"
  flush_jitter = "0s"
  precision = ""
  hostname = "10.5.200.224"
  omit_hostname = false

[[outputs.influxdb]]
  urls = ["http://influxdb:8086"]
  database = "influx"
  timeout = "5s"
  username = "telegraf"
  password = "metrics"

[[inputs.gnmi]]
  addresses = ["10.255.30.5:6702","10.255.30.6:6702","10.255.30.14:6702","10.255.30.33:6702","10.255.32.14:6702"]
  username = "XXXXXX"
  password = "XXXXXX"
  encoding = "proto"
  redial = "10s"
  enable_tls = true
  tls_ca = "/etc/telegraf/ca.cert.pem"
  insecure_skip_verify = true
  tls_cert = "/etc/telegraf/client.cert.pem"
  tls_key = "/etc/telegraf/client.key.pem"
  name_override = "saos10xgnmi"
  updates_only = true

  [[inputs.gnmi.subscription]]
     name = "ifcounters"
     origin = "Ciena"
     path = "/oc-if:interfaces/oc-if:interface[name=7]/oc-if:state/oc-if:counters"
     subscription_mode = "sample"
     sample_interval = "10s"
srebhan commented 1 year ago

@whizkidTRW I'd say it's expected behavior. We need a way to relate an update-response with the subscription and that's usually done using that path (including prefixes and origin). So an empty measurement name indicates that we were not able to build-up the above relation...

I'll change the text of the message a bit and change it from error to warning to allow the name_override workaround...

whizkidTRW commented 1 year ago

@srebhan That works for me! Thanks again for your help on this, I look forward to getting Telegraf 1.25 in to production as soon as it's ready.

srebhan commented 1 year ago

@jgeorge1234 if you do have problem with GNMI and certificates, please open a separate issue! Mixing different bugs/topics makes it hard to follow the information and makes it hard for us to work on the matter.

whizkidTRW commented 1 year ago

@srebhan, is it safe to the the PR artifact of this release in production or should I wait until 1.25 has been released?

srebhan commented 1 year ago

@whizkidTRW maybe a bit late, but PR artifacts should be considered as "not stable", i.e. the configuration options and also the behavior might change until the PR is merged. We usually only intend it for testing, but in urgent cases you might want to bridge the gap to the next release.