Глобальные переменные

В Grafana есть встроенные глобальные переменные, которые можно использовать в выражениях редактора запросов. На этой странице они перечислены в алфавитном порядке с определениями. Большинство переменных полезны в запросах, ссылках на дашборды, ссылках на панели и ссылках на данные, но некоторые, например $__url_time_range, предназначены только для использования в ссылках, а не в редакторах запросов.

$__dashboard

Эта переменная — имя текущего дашборда.

$__from and $__to

В Grafana есть встроенные переменные диапазона времени: $__from и $__to. По умолчанию они всегда интерполируются как миллисекунды epoch, но вы можете управлять форматированием даты.

Синтаксис Пример результата Описание
${__from} 1594671549254 Unix-время в миллисекундах
${__from:date} 2020-07-13T20:19:09.254Z Без аргументов, по умолчанию ISO 8601/RFC 3339
${__from:date:iso} 2020-07-13T20:19:09.254Z ISO 8601/RFC 3339
${__from:date:seconds} 1594671549 Unix-время в секундах
${__from:date:YYYY-MM} 2020-07 Любой пользовательский формат даты, не содержащий символ :. Используется время браузера. Для UTC используйте :date или :date:iso

Приведённый синтаксис также работает с ${__to}.

Эту переменную можно использовать и в URL. Например, можно отправить пользователя на дашборд, отображающий диапазон времени с шести часов назад до текущего момента: https://play.grafana.org/d/000000012/grafana-play-home?viewPanel=2&orgId=1?from=now-6h&to=now

$__interval

Переменную $__interval можно использовать как параметр группировки по времени (для InfluxDB, MySQL, Postgres, MSSQL), как интервал гистограммы по дате (для Elasticsearch) или как параметр функции summarize (для Graphite).

Grafana автоматически вычисляет интервал, который можно использовать для группировки по времени в запросах. Когда точек данных больше, чем можно отобразить на графике, запросы можно сделать более эффективными, сгруппировав их по более крупному интервалу. При просмотре данных за 3 месяца эффективнее группировать по 1 дню, чем по 10 с. График выглядит так же, а запрос выполняется быстрее. Значение $__interval вычисляется на основе диапазона времени и ширины графика (количества пикселей).

Приблизительная формула: (to - from) / resolution

Например, если диапазон времени — 1 час, а график развёрнут на весь экран, интервал может быть вычислен как 2m — точки группируются с интервалом 2 минуты. Если диапазон времени — 6 месяцев, а график развёрнут на весь экран, интервал может быть 1d (1 день) — точки группируются по дням.

В источнике данных InfluxDB устаревшая переменная $interval — та же самая переменная. Вместо неё следует использовать $__interval.

Источники данных InfluxDB и Elasticsearch имеют поля Group by time interval, которые используются для жёсткого задания интервала или для установки минимального предела переменной $__interval (с помощью синтаксиса > -> >10m).

$__interval_ms

Эта переменная — значение переменной $__interval в миллисекундах, а не строка, отформатированная как временной интервал. Например, если $__interval равен 20m, то $__interval_ms равен 1200000.

$__name

Эта переменная доступна только на панели Singlestat и может использоваться в полях префикса или суффикса на вкладке Options. Переменная заменяется именем или псевдонимом ряда.

Note

Панель Singlestat больше недоступна начиная с Grafana 8.0.

$__org

Эта переменная — идентификатор текущей организации. ${__org.name} — имя текущей организации.

$__user

${__user.id} — идентификатор текущего пользователя. ${__user.login} — логин текущего пользователя. ${__user.email} — адрес электронной почты текущего пользователя.

$__range

В настоящее время поддерживается только для источников данных Prometheus и Loki. Эта переменная представляет диапазон текущего дашборда. Он вычисляется как to - from. У него есть представление в миллисекундах и в секундах — $__range_ms и $__range_s.

$__rate_interval

В настоящее время поддерживается только для источников данных Prometheus. Переменная $__rate_interval предназначена для использования в функции rate. Подробности см. в разделе Prometheus query variables.

$__rate_interval_ms

Эта переменная — значение переменной $__rate_interval в миллисекундах, а не строка, отформатированная как временной интервал. Например, если $__rate_interval равен 20m, то $__rate_interval_ms равен 1200000.

$timeFilter or $__timeFilter

Переменная $timeFilter возвращает выбранный в данный момент диапазон времени в виде выражения. Например, выражение для диапазона Last 7 days — time > now() - 7d.

Она используется в нескольких местах, в том числе:

  • В предложении WHERE для источника данных InfluxDB. Grafana добавляет его автоматически в запросы InfluxDB в режиме Query Editor. Его можно добавить вручную в режиме Text Editor: WHERE $timeFilter.
  • В запросах Log Analytics в источнике данных Azure Monitor.
  • В SQL-запросах в MySQL, Postgres и MSSQL.
  • Переменная $__timeFilter используется в источнике данных MySQL.

$__timezone

Переменная $__timezone возвращает выбранный в данный момент часовой пояс — либо utc, либо элемент базы данных часовых поясов IANA (например, America/New_York).

Если выбран часовой пояс Browser Time, Grafana пытается определить часовой пояс вашего браузера.

$__url_time_range

Переменная $__url_time_range возвращает текущий диапазон времени дашборда в виде параметров запроса URL. Она предназначена для использования в ссылках на данные и ссылках на панели, а не в редакторах запросов.

Переменная разворачивается в строку вида from=1607687293000&to=1607687293100, где значения — это временные метки Unix в миллисекундах, соответствующие текущему выбору диапазона времени.

При построении URL разделитель ? или & необходимо указывать самостоятельно:

Использование Пример результата
https://example.com/d/abc?${__url_time_range} https://example.com/d/abc?from=1594671549254&to=1594672349254
https://example.com/d/abc?orgId=1&${__url_time_range} https://example.com/d/abc?orgId=1&from=1594671549254&to=1594672349254

Чтобы перейти на другой дашборд с сохранением текущего диапазона времени, используйте следующий шаблон:

text
https://your-grafana/d/other-dashboard?${__url_time_range}

Чтобы также передать значение переменной из текущего дашборда, используйте следующий шаблон:

text
https://your-grafana/d/other-dashboard?{__url_time_range}&var-host= {host}

Note

$__url_time_range всегда использует временные метки Unix epoch в миллисекундах. Чтобы включить только начало или конец диапазона времени с определённым форматированием, используйте вместо этого переменные $__from и $__to.