Иногда не хочется в Grafana плодить идентичные страницы с одинаковыми панелями, а сделать меню с выбором необходимой группы параметров. Рассказываю, как это делается.
Предыдущая статья серии - здесь.
Создаем параметр
Начнем, как обычно, с создания нового дашборда, но перед созданием графической части нажмём "шестёренку" справа вверху. Перед вами откроются свойства конкретного дашборда (страницы). Откроем закладку Variables и создадим новую переменную.
Прежде всего, мы поименуем новую переменную и заполним его содержимое. Основным способом является запрос к БД, который мы будем делать в процессе открытия экрана. Надеюсь, написание запроса c DISTINCT-значениями для вас проблемы не составит.
Поле Regex можно использовать для обрезки только нужной части строки из выбранного, также имеется сортировка.
Обратите внимание на два переключателя Selection options. Первый превращает выбор значения переменной на самом дашборде из single choice в multiple choice, а второй позволяет быстро выбрать все значения. К эффекту работы этих переключателей мы еще вернемся.
Если по каким-то причинам вас не устраивает выборка значений из таблицы - можно выбрать тип Custom и вручную набить список необходимых значений.
Нажмем Update и вернемся к самой редактируемой странице. Созданная переменная отобразится под названием дашборда.
Обращение к переменной
Это тоже достаточно простая штука. Подставьте впереди символ доллара - и вы получаете выбранное значение переменной. Далее это выражение можно использовать в стандартном Query для графической панели.
Система даже подсказывает наименования переменных при написании Expression в разделе Where.
Multi-value
Теперь проделаем более сложную вещь - выберем несколько значений. Для этого надо сначала вернуться к свойствам и включить Multi-value.
Но простое изменение свойства к необходимому эффекту не приведёт. Простановка "галок" теперь возвращает не одно значение, а список.
Соответственно, в Expression необходимо поменять "=" на "IN". Однако это тоже не поможет ;)
Не знаю, бага это или фича у Grafana, но в Expression автоматически подставляются кавычки, а для IN нужны круглые скобки.
Единственный известный мне метод "лечения" этой проблемы - это переход на прямое написание SQL запроса. Нажмем для этого кнопку Edit SQL и поменяем кавычки на скобки в необходимой строке. Тогда всё заработает. Анатомию ошибки можно посмотреть, полистав картинки ниже.
На этом свой рассказ про переменные я в основном завершу. Увидеть новые данные после изменения выбора в режиме редактирования можно после нажатия Refresh (от дашборда, а не от браузера :), а в режиме просмотра данные перезапрашиваются вроде бы автоматом.
Изучение секретов Grafana пролжим в следующей статье цикла, подписывайтесь на канал!
В следующей статье:
- Отображение Sankey diagram