1 votes

Filtrage des résultats de prometheus snmp-exporter par nom d'interface

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

0voto

Eric Noob Points 531

J'ai trouvé la solution, mais plutôt que de supprimer la question, j'ai pensé que quelqu'un d'autre pourrait trouver cela utile. La réponse est la suivante :

ifInOctets{instance="192.168.1.1"} * ignoring(ifDescr) group_left(ifDescr) ifDescr{ifDescr="eth0"}

J'ai trouvé cet article aide à comprendre la syntaxe de la requête. En particulier, cela a mis en évidence que l'expression ci-dessus est :

<series1> * <series2>

...ce qui a rendu plus évident le fait que les sélecteurs standard peuvent être appliqués à la deuxième série.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X