Динамический выпадающий список значений графана с прометеем

Вероятно, это просто, и мне не хватает какой-то части.

У меня есть приборная панель Grafana, поддерживаемая Прометеем. Prometheus работает в двух разных кластерах кубернетов.

Я хочу, чтобы первый раскрывающийся список был кластером - скажем, A и B. И в зависимости от того, что я выбираю в первом раскрывающемся списке, я хочу, чтобы значения были заполнены во втором раскрывающемся списке. Второе раскрывающееся меню в моем случае - label_values.

Первый раскрывающийся список определяется переменной datasource и имеет тип источника данных, а тип для параметров источника данных - prometheus.

Для второго раскрывающегося списка у меня есть переменная service, type = Query.

В параметрах запроса я определяю запрос как label_values ​​(rt), но он дает значения всех меток независимо от кластера, который я выбрал в первом раскрывающемся списке.

Любая помощь приветствуется.


person user2237511    schedule 28.06.2018    source источник


Ответы (1)


Вам нужно использовать значение первой переменной шаблона в запросе для второй. Т.е. предполагая, что метки метрик для кластера и службы на самом деле равны cluster и соответственно service, тогда вы должны определить запросы переменных шаблона как:

cluster: label_values(up, cluster)
service: label_values(up{cluster="$cluster"}, service)

Это автоматически заполнит второе раскрывающееся меню, когда вы измените выбор в первом.

person Alin Sînpălean    schedule 28.06.2018
comment
У меня есть источник данных переменной: type = Datasource, label = Cluster, Data source options.type = Prometheus. Переменная, которую я хочу динамически заполнять, - это service. Итак, следуя вашему предложению, я сделал Name: service, type: query Параметры запроса: Data source = $ datasource Query = label_values ​​(up {datasource = $ datasource}, service) Но это не работает. Кстати, что случилось? - person user2237511; 28.06.2018
comment
Переменная шаблона источника данных позволяет вам выбирать между несколькими источниками данных (т. Е. Несколькими экземплярами Prometheus). Вам определенно не нужен AFAICT. Что вам нужно, так это две переменные запроса, настроенные, как указано выше: одна предоставит вам раскрывающийся список кластера, а другая - службу. - person Alin Sînpălean; 28.06.2018
comment
На самом деле у меня есть несколько экземпляров prometheus, по одному в каждом кластере, и ни одна из метрик, которые у меня есть, не имеет кластера меток. Я в основном использую имена источников данных для имен кластеров. - person user2237511; 29.06.2018
comment
В этом случае сохраните переменную источника данных, но не используйте ее в качестве селектора меток, поскольку я полагаю, что ваши метрики на самом деле не имеют метки datasource или cluster. Просто убедитесь, что ваша service переменная шаблона и все ваши панели используют $datasource в качестве источника данных. - person Alin Sînpălean; 29.06.2018