Переменные
Переменная — это заполнитель для значения, которое можно использовать в запросах дашборда, заголовках панелей, ссылках и других элементах дашборда. Когда вы изменяете значение переменной, Grafana обновляет каждый элемент дашборда, использующий эту переменную.
Переменные отображаются в виде раскрывающихся списков (а в некоторых случаях — текстовых полей) в верхней части дашборда. Эти элементы управления позволяют зрителям изменять отображаемое на дашборде содержимое, не редактируя сам дашборд.
Например, если вам нужно отслеживать несколько серверов, вы могли бы создать отдельный дашборд для каждого сервера. Или же можно создать один дашборд и использовать в панелях переменные, как на этом примере, где сервер можно переключать с помощью селектора переменной:
Переменные помогают создавать интерактивные дашборды, которые адаптируются к разным контекстам. Вместо жёсткого кодирования таких значений, как имена серверов, приложений, регионов или датчиков, вы можете определить переменную один раз и повторно использовать её на всём дашборде.
Использование переменных также позволяет поддерживать дашборды из одного источника. Если у вас есть несколько идентичных источников данных или серверов, можно сделать один дашборд и с помощью переменных переключать то, что вы просматриваете. Это сокращает дублирование дашбордов и затраты на их сопровождение.
Переменные можно использовать в:
- Запросах к источникам данных
- Настройках повторения панелей
- Ссылках на дашборды и панели
- Заголовках
- Описаниях
- Преобразованиях
Для работы с переменными обычно выполняют следующие шаги:
- Выберите тип переменной, соответствующий значению, которым должны управлять зрители.
- Добавьте переменную на дашборд.
- Используйте переменную в запросах, заголовках, ссылках или других полях дашборда.
- По мере роста дашборда управляйте порядком переменных, их зависимостями и поведением в URL.
Чтобы увидеть настройки переменных, нажмите Edit в правом верхнем углу дашборда, нажмите значок Dashboard options на панели инструментов и разверните раздел Variables.
With Grafana Play, you can explore and see how it works, learning from practical examples to accelerate your development. This feature can be seen on Templating - Interactive dashboard.
Создаваемые вами переменные и глобальные переменные
Grafana поддерживает два основных вида переменных:
- Создаваемые вами переменные: переменные, специфичные для дашборда, которые вы определяете и настраиваете. Используйте их, когда зрителям нужно выбирать значения, такие как сервер, источник данных, регион, среда или интервал. Порядок настройки описан в разделе Add variables.
- Глобальные переменные: встроенные переменные, которые Grafana предоставляет автоматически, например текущий диапазон времени, имя дашборда, организация или вошедший пользователь. Полный справочник приведён в разделе Global variables.
Выбор типа переменной
Выбирайте тип переменной исходя из того, как Grafana должна получать значение и как пользователи с ней взаимодействуют.
Полный список настроек переменных и шагов для конкретных типов приведён в разделе Add variables.
Переменные-шаблоны
Шаблон — это любой запрос, содержащий переменную.
Запросы, текст которых начинается с $, являются шаблонами.
Например, если вы администрируете дашборд, отслеживающий несколько серверов, у него могут быть панели, использующие такой запрос-шаблон:
Note
В документации Grafana и в приложении запрос-шаблон обычно называют запросом, однако термины переменная и переменная-шаблон часто используются как взаимозаменяемые.
groupByNode(movingAverage(apps.$app.$server.counters.requests.count, 10), 2, 'sum')
На следующем изображении показана панель в режиме редактирования с этим запросом:
Note
В документации Grafana и в приложении запрос-шаблон обычно называют запросом, однако термины переменная и переменная-шаблон часто используются как взаимозаменяемые.
Переменные в URL
По умолчанию значения переменных синхронизируются с URL с использованием
синтаксиса параметров запроса, var-<varname>=value.
Например:
https://play.grafana.org/d/HYaGDGIMk/templating-global-variables-and-interpolation?orgId=1&from=now-6h&to=now&timezone=utc&var-Server=CCC&var-MyCustomDashboardVariable=Hello%20World%21
В приведённом примере переменные и значения — это var-Server=CCC и var-MyCustomDashboardVariable=Hello%20World%21.
Вы можете запретить синхронизацию переменной с URL, задав skipUrlSync равным true в определении переменной в JSON-модели дашборда. В этом случае значение переменной не будет появляться в URL в виде параметра запроса var-.
Это полезно, когда вы хотите сохранять URL лаконичными, не давать пользователям переопределять значение переменной через URL или избегать раскрытия конфиденциальных значений в общих ссылках.
Note
У константных переменных
skipUrlSyncпо умолчанию имеет значениеtrue, поскольку их значение фиксировано и не предназначено для изменения через URL.
Дополнительные сведения о переменных в URL, общих ссылках, диапазонах времени и фильтрах см. в разделе Create dashboard URL variables.
Дополнительные примеры
Следующие дашборды в Grafana Play демонстрируют примеры переменных-шаблонов:
- Templating - Repeated panels — использование query-переменных для управления количеством панелей на дашборде.
- Templating - Nested Variables Drilldown — демонстрирует, как изменение значения одной переменной может влиять на доступные значения вложенной переменной.
- Templating - Global variables and interpolation — показывает, как работает синтаксис переменных Grafana.
Дальнейшие шаги
Выберите тему ниже в зависимости от того, что вы хотите сделать далее:
- Чтобы создать переменные для конкретного дашборда, см. раздел Add variables.
- Чтобы использовать встроенные переменные для диапазонов времени, пользователей, организаций или интервалов запросов, см. раздел Global variables.
- Чтобы настроить связанные переменные, переменные с несколькими свойствами или фильтрацию по регулярным выражениям, см. раздел Advanced variable usage.
- Чтобы управлять тем, как Grafana интерполирует значения переменных, см. раздел Variable syntax.
- Чтобы изменять порядок, клонировать, удалять переменные или изучать их зависимости, см. раздел Manage and inspect variables.
На следующих страницах содержится полная документация по переменным: