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
This commit is contained in:
Alexander Chernavin
committed by
Ole Tr�an
parent
ca92091f95
commit
2430bad895
@ -112,6 +112,15 @@ retry:
|
||||
res[i].scalar_value);
|
||||
break;
|
||||
|
||||
case STAT_DIR_TYPE_NAME_VECTOR:
|
||||
fformat (stream, "# TYPE %s_info gauge\n",
|
||||
prom_string (res[i].name));
|
||||
for (k = 0; k < vec_len (res[i].name_vector); k++)
|
||||
if (res[i].name_vector[k])
|
||||
fformat (stream, "%s_info{index=\"%d\",name=\"%s\"} 1\n",
|
||||
prom_string (res[i].name), k, res[i].name_vector[k]);
|
||||
break;
|
||||
|
||||
case STAT_DIR_TYPE_EMPTY:
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user