Я использую графану для мониторинга сетевого устройства. Как видно на screen1, у меня много интерфейсов для монитора, 28 физических интерфейсов + много виртуальных (vlan). График показывает мне все интерфейсы, но я хочу и возможность выбрать интерфейс из выпадающего списка. Затем я обнаружил, что могу решить эту проблему с помощью «переменных». Я создаю одну переменную и могу выбрать нужный интерфейс, но это не повлияло на график, когда я выбрал пользовательский интерфейс.
Моя переменная:
И мой запрос к базе данных:
SELECT derivative(mean("ifHCInOctets"), 1s) *8 AS "Input", derivative(mean("ifHCOutOctets"), 1s) *8 AS "Output" FROM "autogen"."interface" WHERE $timeFilter GROUP BY time($__interval), "ifDescr" fill(null)
@IIIIIIIIIIIIIIIIIIIIII Я добавляю его в запрос переменных, верно? Если да, то это не помогает.
Нет, это ошибка в вашем запросе к базе данных
@IIIIIIIIIIIIIIIIIIIIII, пробую вот этот, но у меня не сработало: SELECT derivative(mean("ifHCInOctets"), 1s) *8 AS "Input", derivative(mean("ifHCOutOctets"), 1s) *8 AS "Output" FROM "autogen"."interface" WHERE ("interface" =~ /^$ifDescr$/)
@IIIIIIIIIIIIIIIIIIIIII прав, добавьте свою переменную в фильтр запроса данных.





ГДЕ "интерфейс" = ~ / ^ $ ifDescr $ /
потеряйте скобки вокруг запроса в запросе grafana при создании панели мониторинга. Это должно сработать. В любом случае так я фильтрую имена хостов, поэтому мой полный запрос
SELECT mean("usage_idle") * -1 + 100 FROM "cpu" WHERE "host" =~ /^$Server$/ AND "cpu" = 'cpu-total' AND $timeFilter GROUP BY time($Interval) fill(null)
Это должно помочь собрать воедино нужный вам запрос. Вы можете просто использовать построитель запросов Grafana и просто изменить предложение where, чтобы использовать значение регулярного выражения для переменной
Конструктор запросов в Grafana
Скобки правильные, если вы пишете сценарий TICK или запрашиваете базу данных непосредственно из cli. Grafana использует немного другой синтаксис запроса.
попробуйте:
.. WHERE ("interface" =~ /^$ifDescr$/)