Custom variable
Тема дорожной карты · Grafana
Custom-переменная в Grafana — это простой статический список вариантов, задаваемый прямо в конфигурации переменной, а не загружаемый из источника данных, что идеально подходит для фиксированных значений измерений: имён окружений (dev, staging, prod) или уровней логирования (info, warn, error). Варианты задаются в виде списка, разделённого запятыми, в поле Values редактора Custom-переменной — например, dev,staging,prod — и Grafana отображает их как выпадающий список или мультиселект в верхней части дашборда. Custom-переменные поддерживают те же настройки Multi-value и Include All option, что и Query-переменные, позволяя пользователям выбирать несколько окружений одновременно и подставляя их в запросы панелей через соответствующий синтаксис форматирования, например ${env:pipe} для регулярного чередования. В отличие от Query-переменных, Custom-переменные не делают запросов к источнику данных, поэтому загружаются мгновенно и не зависят от доступности или задержки источника данных. Они часто используются совместно с Query-переменными в цепочечных конфигурациях: например, сначала выбирается окружение через Custom-переменную, которая затем определяет, какие хосты получает нижестоящая Query-переменная из Prometheus.
Как это работает
Custom variable делают один дашборд обслуживающим много отфильтрованных view. Типы: Query (заполняется запросом — label_values(instance)), Custom (хардкод-список), Constant, Datasource (переключение источников), Interval (размер time-bucket), Text box, Ad-hoc filters. Multi-value + Include-all. Использование в запросах панелей: ${var} или $var. Repeat panel/row по переменной.
Когда применять
Всегда добавляйте хотя бы переменную instance или pod на infra-дашбордах — фильтр на один хост вместо просмотра всех 200. Переменная Interval — чтобы юзер выбирал "5m" vs "1h" агрегацию. Include all — дефолт "view everything". Дефолтные значения переменных — чтобы first-load не был пустым.
Типичные ошибки
Ловушки Custom variable: запросы не учитывают определённую переменную (дашборд показывает всё независимо от фильтра — путает); значения переменной со спецсимволами не эскейплены (битые запросы); переменные обновляются на каждое взаимодействие (медленный UI).