Je collecte des statistiques sur les interfaces de certains commutateurs en utilisant la configuration suivante :
modules:
if_mib:
walk:
- ifTable
auth:
community: monitor
Les données renvoyées par l'exportateur sont indexées par ifIndex
. En d'autres termes, une demande de ifInOctets{instance="192.168.1.1"}
se traduit par des résultats :
ifInOctets{ifIndex="1",instance="192.168.1.1",job="snmp_if"} 129355
ifInOctets{ifIndex="2",instance="192.168.1.1",job="snmp_if"} 359870890
ifInOctets{ifIndex="3",instance="192.168.1.1",job="snmp_if"} 0
ifInOctets{ifIndex="4",instance="192.168.1.1",job="snmp_if"} 212586200
Etc. Je veux les noms des interfaces pour les afficher, ce que je peux obtenir avec la requête suivante :
ifInOctets{instance="192.168.1.1"} * ignoring(ifDescr) group_left(ifDescr) ifDescr
Qui revient :
{ifDescr="lo",ifIndex="1",instance="192.168.1.1",job="snmp_if"} 129355
{ifDescr="itf0",ifIndex="2",instance="192.168.1.1",job="snmp_if"} 359870890
{ifDescr="imq0",ifIndex="3",instance="192.168.1.1",job="snmp_if"} 0
{ifDescr="eth0",ifIndex="4",instance="192.168.1.1",job="snmp_if"} 2125862004
Comment puis-je filtrer les résultats en fonction de la valeur du champ ifDescr
attribut ?
J'ai essayé ce qui suit, m'attendant à un échec, et je n'ai pas été surpris :
ifInOctets{instance="192.168.1.1", ifDescr="eth0"} * ignoring(ifDescr) group_left(ifDescr) ifDescr