cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
436
Views
0
Helpful
1
Replies

XR 7.5.2 Telemetry - missing keyword in streamed metric

mbodini
Level 1
Level 1

Hello everybody,
I have configured Model Driven Telemetry on a bunch of IOS XR devices, in dial-out mode with a receiving stack composed of Telegraf, InfluxDB and Grafana.

Everything works more or less OK, but I noticed something amiss when I upgraded some of my ASR-990x to eXR 7.5.2.

What happens is that a specific metric has changed the syntax of the message sent from the routers to the server and now it lacks the keyword "keys", which is necessary for Telegraf to correctly interpret the message and write it into the database.

 

The metric I'm talking about is Cisco-IOS-XR-shellutil-oper:system-time/uptime (which returns the hostname and the uptime of the router) and here is the difference between a message sent from XR 7.0.2 and another one sent from XR 7.5.2 (the platform is always an ASR-9901)

7.0.2

{"node_id_str":"BZ-IPE-3","subscription_id_str":"app_TEST_200000001","encoding_path":"Cisco-IOS-XR-shellutil-oper:system-time/uptime","collection_id":"17615988","collection_start_time":"1657029922660","msg_timestamp":"1657029922677","data_json":[{"timestamp":"1657029922672","keys":[],"content":{"host-name":"BZ-IPE-3","uptime":49493871}}],"collection_end_time":"1657029922677"}

 

7.5.2

{"node_id_str":"TN-IPE-3","subscription_id_str":"app_TEST_200000001","encoding_path":"Cisco-IOS-XR-shellutil-oper:system-time/uptime","collection_id":"2632682","collection_start_time":"1657014353264","msg_timestamp":"1657014353277","data_json":[{"timestamp":"1657014353274","content":{"host-name":"TN-IPE-3","uptime":4817059}}],"collection_end_time":"1657014353277"}

 

As you can see, the word "keys":[] is missing just before the "content" section in XR 7.5.2 and for this reason the Telegraf plugin isn't able to parse the message and output the content to InfluxDB.

I'd like to know if anybody faced the same issue and maybe found some workaround. I will try something on the Telegraf side, but in the end I think it is Cisco that needs to fix this, maybe through a SMU or something.

 

Thank you in advance for your input

 

Marco

1 Accepted Solution

Accepted Solutions

mbodini
Level 1
Level 1

For future reference, the issue was solved adding the command "include empty values" in the "telemetry model driven" config section, as suggested by Cisco TAC:

telemetry model-driven
 include empty values
 
This restored the keyword "keys", which is now sent to telegraf even if it is an empty array, and is correctly processed.

I don't know if there might be any downsides to this approach, but I imagine that the overall size of the eventual empty values that get sent because of this command is not gonna be worrisome neither in terms of CPU usage nor in terms of disk space or network bandwidth.
Anyway I'll keep this monitored and we'll see.

View solution in original post

1 Reply 1

mbodini
Level 1
Level 1

For future reference, the issue was solved adding the command "include empty values" in the "telemetry model driven" config section, as suggested by Cisco TAC:

telemetry model-driven
 include empty values
 
This restored the keyword "keys", which is now sent to telegraf even if it is an empty array, and is correctly processed.

I don't know if there might be any downsides to this approach, but I imagine that the overall size of the eventual empty values that get sent because of this command is not gonna be worrisome neither in terms of CPU usage nor in terms of disk space or network bandwidth.
Anyway I'll keep this monitored and we'll see.
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: