stats: add name vectors to prometheus exporter output 44/33744/3
authorAlexander Chernavin <achernavin@netgate.com>
Fri, 17 Sep 2021 12:37:48 +0000 (12:37 +0000)
committerOle Tr�an <otroan@employees.org>
Tue, 28 Sep 2021 13:01:32 +0000 (13:01 +0000)
commit2430bad8951a321e0fcb50eafb562ecbdbecbb5b
treed679a9552708e4baa7e8ceb4f7cfc90dd34a9adf
parentca92091f95b34c75c5f810b6f967ca115671d907
stats: add name vectors to prometheus exporter output

Type: improvement

Counters are labeled with interface indices in the Prometheus exporter
output. For example:

  # TYPE _if_drops counter
  _if_drops{thread="0",interface="0"} 0
  _if_drops{thread="0",interface="1"} 0
  _if_drops{thread="0",interface="2"} 2112
  [..]

Currently, it's unable to map interface indices to the interface names
using only output provided by the Prometheus exporter. However, this
mapping is present in the vpp_get_stats output:

  # vpp_get_stats dump /if/names
  [0]: local0 /if/names
  [1]: GigabitEthernet0/8/0 /if/names
  [2]: GigabitEthernet0/9/0 /if/names
  [..]

With this change, add name vectors to Prometheus exporter output as info
metrics. Thus exposing interfaces and their indices:

  # TYPE _if_names_info gauge
  _if_names_info{index="0",name="local0"} 1
  _if_names_info{index="1",name="GigabitEthernet0/8/0"} 1
  _if_names_info{index="2",name="GigabitEthernet0/9/0"} 1
  [..]

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: Iff86c4d6fea8805e71fb04fccf278bae855e88d1
src/vpp/app/vpp_prometheus_export.c