Последнее обновление: августа 11, 2026

Переменные шаблонов OpenTSDB

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

Введение в переменные шаблонов см. в документации Переменные.

Переменная запроса

Источник данных OpenTSDB поддерживает переменные шаблонов типа «запрос», которые получают значения напрямую из OpenTSDB. Такие переменные динамически заполняются на основе данных вашей базы OpenTSDB.

Поддерживаемые функции запросов

Запрос Описание Используемый API
metrics(prefix) Возвращает имена метрик, соответствующие префиксу. Используйте пустые скобки для всех метрик. /api/suggest?type=metrics
tag_names(metric) Возвращает ключи (имена) тегов, существующие для конкретной метрики. /api/search/lookup
tag_values(metric, tagkey) Возвращает значения тегов для конкретной метрики и ключа тега. /api/search/lookup
suggest_tagk(prefix) Возвращает ключи тегов, соответствующие префиксу, по всем метрикам. /api/suggest?type=tagk
suggest_tagv(prefix) Возвращает значения тегов, соответствующие префиксу, по всем метрикам. /api/suggest?type=tagv

Note

Функции tag_names и tag_values используют API поиска (lookup) OpenTSDB, который требует наличия метрик в базе данных. Функции suggest_tagk и suggest_tagv используют API suggest, который выполняет поиск по всем метрикам.

Создание переменной запроса

Чтобы создать переменную запроса:

  1. Перейдите к дашборду, который нужно изменить, и нажмите Edit.
  2. Нажмите значок Add new element (синий знак «плюс»).
  3. Нажмите Variable.
  4. Выберите Query в качестве типа переменной.
  5. Введите Name для переменной (например, host).
  6. Выберите вариант в раскрывающемся списке Display, чтобы задать, где на дашборде отображается переменная.
  7. Нажмите Open variable editor, чтобы открыть диалоговое окно Query Variable.
  8. Выберите источник данных OpenTSDB.
  9. Введите запрос, используя одну из поддерживаемых функций запросов.
  10. Нажмите Close, когда закончите настройку запроса.
  11. (Необязательно) Настройте Multi-value, чтобы разрешить выбор нескольких значений.
  12. (Необязательно) Настройте Include All value, чтобы добавить вариант «All».
  13. (Необязательно) Включите переключатель Allow custom values, чтобы пользователи могли вводить собственные значения переменной.
  14. Нажмите Save.
  15. (Необязательно) Введите описание внесённых изменений.
  16. Нажмите Save.
  17. Нажмите Exit edit.

Примеры переменных запросов

Список всех метрик:

metrics()

Возвращает все имена метрик в вашей базе OpenTSDB. Полезно для создания селектора метрик.

Список метрик с префиксом:

metrics(sys.cpu)

Возвращает метрики, начинающиеся с sys.cpu, например sys.cpu.user, sys.cpu.system, sys.cpu.idle.

Список ключей тегов для метрики:

tag_names(sys.cpu.user)

Возвращает ключи тегов, такие как host, env, datacenter, которые существуют у метрики sys.cpu.user.

Список значений тегов для метрики и ключа тега:

tag_values(sys.cpu.user, host)

Возвращает все значения host для метрики sys.cpu.user, например webserver01, webserver02, dbserver01.

Поиск ключей тегов по префиксу:

suggest_tagk(host)

Возвращает ключи тегов, соответствующие host, по всем метрикам, например host, hostname, host_id.

Поиск значений тегов по префиксу:

suggest_tagv(web)

Возвращает значения тегов, соответствующие web, по всем метрикам, например webserver01, webserver02, web-prod-01.

Если переменные шаблонов не заполняются в разделе Preview of values, см. Устранение неполадок.

Вложенные переменные шаблонов

Одну переменную шаблона можно использовать для фильтрации значений другой. Так создаются каскадные фильтры: например, сначала выбирается дата-центр, а затем отображаются только хосты в этом дата-центре.

Синтаксис фильтра

Функция tag_values принимает дополнительные фильтры по тегам после ключа тега:

tag_values(metric, tagkey, tag1=value1, tag2=value2, ...)

Используйте переменные шаблонов в качестве значений фильтра, чтобы создавать динамические зависимости:

tag_values(metric, tagkey, tag1=$variable1, tag2=$variable2)

Примеры вложенных переменных

Запрос Описание
tag_values(sys.cpu.user, host, env=$env) Возвращает значения host, отфильтрованные по выбранному значению env.
tag_values(sys.cpu.user, host, env=$env, datacenter=$dc) Возвращает значения host, отфильтрованные и по env, и по datacenter.
tag_values(app.requests, endpoint, service=$service) Возвращает значения endpoint для выбранного сервиса.

Создание каскадных фильтров

Чтобы создать иерархию зависимых переменных:

  1. Создайте родительскую переменную:

    • Name: datacenter
    • Query: tag_values(sys.cpu.user, datacenter)
  2. Создайте дочернюю переменную:

    • Name: host
    • Query: tag_values(sys.cpu.user, host, datacenter=$datacenter)
  3. Создайте дополнительные уровни по мере необходимости:

    • Name: cpu
    • Query: tag_values(sys.cpu.user, cpu, datacenter=$datacenter, host=$host)

Когда пользователи меняют выбранный дата-центр, переменная host автоматически обновляется, показывая только хосты в этом дата-центре.

Использование переменных в запросах

Ссылайтесь на переменные в запросах с помощью синтаксиса $variablename или ${variablename}. При выполнении запроса Grafana подставляет вместо переменной её текущее значение.

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

Переменные можно использовать в следующих полях редактора запросов:

Поле Пример Описание
Metric $metric Динамически выбирает, какую метрику запрашивать.
Tag value host=$host Фильтрует по значению тега, выбранному переменной.
Filter value $host Используется в поле значения фильтра для фильтрации.
Alias $tag_host - $host Включает значения переменных в подписи легенды.
Downsample interval $interval Использует переменную в качестве интервала прореживания.

Варианты синтаксиса переменных

Синтаксис Описание
$variablename Простой синтаксис для большинства случаев.
${variablename} Используйте, когда переменная примыкает к другому тексту (например, ${host}_suffix).
${variablename:format} Применяет определённый формат к значению переменной.

Многозначные переменные

Когда для переменной включён Multi-value, пользователи могут выбирать несколько значений одновременно. Источник данных OpenTSDB обрабатывает многозначные переменные, разделяя значения символом вертикальной черты (|), что совместимо с типом фильтра literal_or в OpenTSDB.

Настройка многозначных переменных

  1. При создании переменной включите Multi-value.
  2. При необходимости включите Include All option, чтобы добавить вариант «All».
  3. Используйте переменную в фильтре с типом фильтра literal_or.

Пример многозначной переменной

При переменной host, настроенной как многозначная:

Поле Значение
Filter Key host
Filter Type literal_or
Filter Value $host

Если пользователь выберет webserver01, webserver02 и webserver03, значение фильтра станет webserver01|webserver02|webserver03.

Поведение значения All

Когда пользователь выбирает «All», Grafana отправляет все доступные значения, разделённые вертикальной чертой. Для больших наборов значений вместо этого рассмотрите использование фильтра с подстановочным символом:

Поле Значение
Filter Key host
Filter Type wildcard
Filter Value *

Переменные интервала и автоинтервала

Grafana предоставляет встроенные переменные интервалов, полезные при прореживании в OpenTSDB:

Переменная Описание
$__interval Автоматически вычисляемый интервал на основе диапазона времени и ширины панели.
$__interval_ms То же, что $__interval, но в миллисекундах.

Используйте их в поле интервала прореживания для автоматической подстройки интервала:

Поле Значение
Downsample Interval $__interval

Дальнейшие шаги