Cisco gRPC and TIG only the last value saved in InfluxDB

Hi community!

I have recently started playing with TIG to graph and display some information from Cisco IOS-XE based devices. I’ve initially deployed it with InfluxDB v1 which seemed to work quite OK. I’ve then deployed it using InfluxDB v2 and that’s where I ran into some problems. It somehow looks like the issue might be in Telegraf based on my investigation, but would be very keen to hear from anyone here if they experienced similar issues. So…

When I try to collect telemetry data using gRPC on TIG with InfluxDB v1 using YANG model Cisco-IOS-XE-arp-oper.yang or basically any YANG model that returns data with multiple values such as MAC address table, ARP table, etc. the data stored in InfluxDB contains all values. For example if I check ARP for vrf Default the InfluxDB will contain all ARP entries for that VRF. If I do the same on TIG with InfluxDB v2. The DB only contains the last value sent from the switch.

My investigation so far included:

  • tcpdump - I can confirm the TCP dup includes all values in a single packet
  • Telegraf to write to file (outputs.file config) - the file also contains only the last value, which makes me believe the issues is in Telegraf instead of InfluxDB v2

Example of telemetry configuration on IOS-XE device:

telemetry ietf subscription 5
 encoding encode-kvgpb
 filter xpath /arp-ios-xe-oper:arp-data/arp-vrf[vrf='Default']/arp-oper
 stream yang-push
 update-policy periodic 30000
 receiver ip address 57000 protocol grpc-tcp

Has anyone else seen such behaviour and most importantly, has anyone managed to solve it?