#prometheus #grafana
Вопрос:
Я выбираю источник / устройство через up{instance='$mac'}
in Grafana из источника данных Prometheus. Переменная Grafana $mac
-это строка, представляющая имя хоста и т. Д. который я генерирую в зависимости от пользовательского ввода из базы данных SQL (Postgre). Это работает. Теперь я хочу сделать 2 вещи:
- Используйте самостоятельно установленную метку (например, местоположение устройства вместо его mac-адреса)
- Используйте список / массив mac-адресов
instance
, а также другую переменную для меток в легенде.
vectors
Упомянутый на https://prometheus.io/docs/prometheus/latest/querying/basics/ похоже, это только для значений времени. В основном я ищу что-то эквивалентное IN
в SQL.
Ответ №1:
Если я вас правильно понял, вы пытаетесь извлечь из заданной метрики up
некоторый массив значений. Это то, что вы делаете по аналогии с IN
оператором в SQL. Из документов, которые вы можете использовать =~: Select labels that regex-match the provided string
. Например, в приведенном ниже запросе он используется здесь.
up{job=~"(prometheus|alertmanager)"}
или вы можете использовать аналог NOT IN
: !~: Select labels that do not regex-match the provided string
.
up{job!~"(prometheus)"}
Тогда я думаю, что вы можете заменить значения своими $mac
переменными на Графане.