Support IETF Streaming Telemetry and OpenConfig gNMI for performance monitoring

Modern network devices OS versions support other methods than SNMP for performance monitoring like: IETF Streaming Telemetry [1] and OpenConfig gNMI [2].
Both of them use Google Protocol Buffers [3] as container for data models but different transport, device with Streaming Telemetry pushes monitoring statistics to NMS itself without any requests but only using configured RPC on device itself [4] and gNMI uses request-response model there NMS request specific OpenConfig gRPC from device and network device send response in gRPC format [5]
Here is example of configuring this on Juniper devices [6] and example of vendor specific (Juniper) system for collecting
Streaming Telemetry data [7]

[1] - https://www.nanog.org/sites/default/files/1_Ryburn_SNMP_Must_Die.pdf
[2] - http://www.openconfig.net/projects/rpc/
[3] - https://developers.google.com/protocol-buffers/
[4] - https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-telemetry-interface-oveview.html
[5] - https://github.com/openconfig/reference/tree/master/rpc/gnmi
[6] - https://www.juniper.net/documentation/en_US/junos/topics/task/configuration/grpc-junos-telemetry-interface-configuring.html
[7] - https://github.com/Juniper/open-nti

15 Likes

Definitly go for it. YANG/OpenConfig/model-driven-telemetry seems to be SNMP-done-right.

Hi team! Some news about telemery implementation?

Hi @Markov
This is a feature request, but seems that nobody started to develop it. Moreover, the philosophy is not at all the same compared to SNMP, and SNMP is in the deep fondations of LibreNMS right now, so it would mean rewriting LibreNMS completely …
LibreNMS is a community driven project, by you and me basically. So you’ll see a post here whenever somebody starts developing it.

1 Like

+1 for this, would be a great asset to be able to consume streaming telemetry from network devices.

+1 for this

Was there ever any progress / implementation plans around this topic?

There are pre-requisites that need to be implemented before this could even begin. Off the top of my head.

  1. Secure credential storage (of many types)
  2. A way to specify which methods to use for polling or at least a preference
  3. Ability to handle pushed metrics instead of polling.

Probably more. Any contributions to implement those would be greatly appreciated by the community, I’m sure.

It would be awesome this integration. We have a lot of Huawei devices with telemetry feature available and according to description, it could save a lot of cpu and process time.

Maybe we can start with external collector like mdt-dialout-collector?
Then we only need extra db integration as source for graphs and data, but i imagine this is huge task and change to current paradigm with rrd as time series storage.

Could this be packaged/translated into a Poller?