Глобальные переменные
В Grafana есть встроенные глобальные переменные, которые можно использовать в выражениях редактора запросов.
На этой странице они перечислены в алфавитном порядке с определениями.
Большинство переменных полезны в запросах, ссылках на дашборды, ссылках на панели и ссылках на данные, но некоторые, например $__url_time_range, предназначены только для использования в ссылках, а не в редакторах запросов.
$__dashboard
Эта переменная — имя текущего дашборда.
$__from and $__to
В Grafana есть встроенные переменные диапазона времени: $__from и $__to.
По умолчанию они всегда интерполируются как миллисекунды epoch, но вы можете управлять форматированием даты.
Приведённый синтаксис также работает с ${__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://your-grafana/d/other-dashboard?${__url_time_range}
Чтобы также передать значение переменной из текущего дашборда, используйте следующий шаблон:
https://your-grafana/d/other-dashboard?{__url_time_range}&var-host= {host}
Note
$__url_time_rangeвсегда использует временные метки Unix epoch в миллисекундах. Чтобы включить только начало или конец диапазона времени с определённым форматированием, используйте вместо этого переменные$__fromи$__to.