На infxdb, как можно объединить 2 тега, чтобы графана использовалась как часть заголовка? - PullRequest
0 голосов
/ 21 апреля 2020

Я использую плагин Influx Telegraf SNMP для сбора данных об использовании полосы пропускания байтов сетевым устройством. Проблема, с которой я сталкиваюсь, заключается в том, что telegraf создает различные теги: agent_host, ifAlias, ifDescr, ifName, но когда речь идет о Grafana, я хотел бы отобразить заголовок:

$ tag_agent_host - $ tag_ifName ($ tag_ifDescr)

Agent_host - это сетевое устройство, и я заставляю grafana повторять диаграммы на основе $ tag_ifName, который я выполняю sh, определяя переменная для диаграммы: $ interface_name. Проблема в том, что повторяющиеся заголовки графиков Grafana поддерживают только одну переменную для повторяющихся графиков - в моем случае у меня есть 2 выпадающих списка:

  • $ device (сопоставление с agent_host):

    Показать значения тега с ключом = "agent_host"

  • $ имя_интерфейса (сопоставляется с ifName и имеет параметр ALL и используется для повторной диаграммы Grafana)

    SHOW TAG VALUES WITH key = "ifName" WHERE agent_host = ~ / ^ $ device $ /

Создание третьей переменной, такой как представленная ниже, бесполезно, поскольку Grafana будет связывать только значение переменной диаграммы, являющейся частью повторения, которая позволяет выполнять повтор только по одному имени переменной.

  • $ interface_descr (сопоставление с ifDescr и наличие опции ALL)

    Показать значения тега с ключом = "ifDescr" WHERE agent_host = ~ / ^ $ device $ / AND ifName = ~ / ^ $ имя_интерфейса $ /

При отображении названия диаграмм в следующем формате:

$device - $interface_name - $interface_descr
* 10 37 * Фактические названия будут выглядеть следующим образом:
switch1 - G1/0/1 - All
switch1 - G1/0/2 - All
...
switch1 - Tunnel0 - All

Очевидно, что это не то, что я хотел - поэтому, чтобы иметь возможность сделать это, либо мне нужно иметь возможность определить одну переменную это показывает, что ifName и ifDescr объединены в одно, концептуально что-то вроде:

SHOW TAG VALUES WITH key="ifDesrc" AND key="ifName" WHERE agent_host=~/^$device$/

или SELECT DISTINCT (ifName, ifDesr c) FROM snmp WHERE agent_host = / ^ $ device $ /

Очевидно, что ни один из них не будет работать, потому что InfluxDB не поддерживает SHOW TAG VALUES в качестве матрицы из 2 или более комбинированных тегов, а DISTINCT не поддерживает более 1 тега в качестве параметра, и SELECT сам по себе не сможет гарантировать, что моя переменная не повторений

SELECT ifName, ifDescr FROM snmp WHERE agent_host=/^$device$/ AND $timeFilter
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...