Зависимые переменные для получения меток прометея - PullRequest
0 голосов
/ 26 февраля 2020

На моей странице / метрик у меня есть строки, подобные

 my_metric{controller="cont_a",action="act_a",le="1"} 5
 my_metric{controller="cont_a",action="act_b",le="1"} 4
 my_metric{controller="cont_b",action="act_c",le="1"} 3
 my_metric{controller="cont_b",action="act_d",le="1"} 2

На моей панели инструментов Grafana я хочу видеть две переменные: controller и action. Если я просто определю их через запросы, такие как label_values(controller) и label_values(action), они будут независимыми, то есть, если выбран контроллер "cont_a", будут доступны все 4 действия. Но я хочу сделать переменную действия зависимой от переменной контроллера, чтобы при выборе контроллера "cont_a" для переменной действия были доступны только значения "act_a" и "act_b". А если выбран "cont_b", то только "act_c" и "act_d". Есть ли способ настроить панель инструментов Grafana таким образом?

1 Ответ

2 голосов
/ 27 февраля 2020

Возможно наличие зависимых переменных на панели инструментов Grafana. Например, предположим, что для переменной $instance у нас есть список экземпляров, пришедших из up metri c в Prometheus. Мы можем настроить его как запрос с помощью функции label_values от Grafana:

label_values(up, instance)

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

label_values(up{instance=~"$instance"}, job)

В этом случае мы используем уже определенную переменную $instance для заполнения параметров второй переменной (список заданий).

Вы можете увидеть здесь рабочий пример этого подхода.

...