Переменные

Переменная — это заполнитель для значения, которое можно использовать в запросах дашборда, заголовках панелей, ссылках и других элементах дашборда. Когда вы изменяете значение переменной, Grafana обновляет каждый элемент дашборда, использующий эту переменную.

Переменные отображаются в виде раскрывающихся списков (а в некоторых случаях — текстовых полей) в верхней части дашборда. Эти элементы управления позволяют зрителям изменять отображаемое на дашборде содержимое, не редактируя сам дашборд.

Например, если вам нужно отслеживать несколько серверов, вы могли бы создать отдельный дашборд для каждого сервера. Или же можно создать один дашборд и использовать в панелях переменные, как на этом примере, где сервер можно переключать с помощью селектора переменной:

Раскрывающийся список переменной открыт и выбраны два значения

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

Использование переменных также позволяет поддерживать дашборды из одного источника. Если у вас есть несколько идентичных источников данных или серверов, можно сделать один дашборд и с помощью переменных переключать то, что вы просматриваете. Это сокращает дублирование дашбордов и затраты на их сопровождение.

Переменные можно использовать в:

Для работы с переменными обычно выполняют следующие шаги:

  1. Выберите тип переменной, соответствующий значению, которым должны управлять зрители.
  2. Добавьте переменную на дашборд.
  3. Используйте переменную в запросах, заголовках, ссылках или других полях дашборда.
  4. По мере роста дашборда управляйте порядком переменных, их зависимостями и поведением в URL.

Чтобы увидеть настройки переменных, нажмите Edit в правом верхнем углу дашборда, нажмите значок Dashboard options на панели инструментов и разверните раздел Variables.

Give it a try using Grafana Play
Give it a try using Grafana Play

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 должна получать значение и как пользователи с ней взаимодействуют.

Тип переменной Когда использовать
Query Список значений формируется запросом к источнику данных, например имена серверов, имена метрик, значения меток или центры обработки данных.
Custom Вы хотите вручную задать фиксированный список значений.
Text box Зрителям нужно ввести значение в свободной форме.
Constant Дашборду нужно повторно используемое значение, которое зрители не меняют.
Data source Зрителям нужно переключать дашборд или запрос между экземплярами источника данных.
Interval Зрителям нужно изменять интервал группировки по времени или агрегации в запросах.
Filters Зрителям нужны фильтры «ключ/значение» на уровне всего дашборда для поддерживаемых источников данных.
Switch Зрителям нужно переключаться между двумя настроенными значениями.

Полный список настроек переменных и шагов для конкретных типов приведён в разделе Add variables.

Переменные-шаблоны

Шаблон — это любой запрос, содержащий переменную. Запросы, текст которых начинается с $, являются шаблонами. Например, если вы администрируете дашборд, отслеживающий несколько серверов, у него могут быть панели, использующие такой запрос-шаблон:

Note

В документации Grafana и в приложении запрос-шаблон обычно называют запросом, однако термины переменная и переменная-шаблон часто используются как взаимозаменяемые.

text
groupByNode(movingAverage(apps.$app.$server.counters.requests.count, 10), 2, 'sum')

На следующем изображении показана панель в режиме редактирования с этим запросом:

Панель, использующая запрос-шаблон

Note

В документации Grafana и в приложении запрос-шаблон обычно называют запросом, однако термины переменная и переменная-шаблон часто используются как взаимозаменяемые.

Переменные в URL

По умолчанию значения переменных синхронизируются с URL с использованием синтаксиса параметров запроса, var-<varname>=value. Например:

text
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.

На следующих страницах содержится полная документация по переменным: