Последнее обновление: апреля 8, 2026

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

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

Введение в шаблонизацию и переменные шаблонов см. в документации Шаблонизация и Добавление переменных и управление ими.

Поддерживаемые типы переменных

Тип переменной Поддерживается
Query Да
Custom Да
Data source Да

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

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

  1. Перейдите к дашборду, который хотите обновить, и нажмите Edit.
  2. Нажмите значок Add new element (синий знак плюс).
  3. Нажмите Variable.
  4. Выберите Query в качестве типа переменной.
  5. Введите Name для вашей переменной.
  6. Выберите опцию в раскрывающемся списке Display, чтобы управлять тем, где на дашборде отображается переменная.
  7. Нажмите Open variable editor, чтобы открыть диалоговое окно Query Variable.
  8. Выберите источник данных TestData.
  9. Введите ваш запрос в поле Query.

Запросы дерева метрик

TestData генерирует иерархическое дерево метрик с узлами, именованными с помощью комбинаций букв. Дерево имеет 6 уровней глубины, при этом каждый уровень содержит 8 узлов, помеченных от A до H. Строка запроса перемещается по этому дереву, используя сегменты пути, разделённые точками.

Синтаксис запроса

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

Запрос Результат
* Возвращает узлы верхнего уровня: A, B, C, D, E, F, G, H.
A.* Возвращает дочерние узлы узла A: AA, AB, AC, AD, AE, AF, AG, AH.
A.AA.* Возвращает дочерние узлы узла AA: AAA, AAB, AAC и т. д.
A.AB Возвращает дочерние узлы узла AB: ABA, ABB, ABC и т. д.

Используйте glob-шаблоны с фигурными скобками для сопоставления нескольких узлов:

Запрос Результат
{A,B}.* Возвращает дочерние узлы как A, так и B: AA, AB, …, BA, BB и т. д.
A.{AA,AB}.* Возвращает дочерние узлы AA и AB: AAA, AAB, …, ABA, ABB и т. д.

Используйте * после префикса для сопоставления узлов, начинающихся с данной строки:

Запрос Результат
A* Возвращает все узлы верхнего уровня, начинающиеся с A (на верхнем уровне только A).

Запросы значений

Если ваша строка запроса начинается с value, TestData возвращает саму строку запроса как результат. Это полезно для создания переменных с конкретными значениями для тестирования. Например, запрос value_production возвращает value_production.

Пример: создание переменной region

Этот пример описывает создание переменной запроса, которая заполняет раскрывающийся список смоделированными значениями регионов, а затем её использование в запросе панели.

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

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

  1. Добавьте новую панель и выберите источник данных TestData.
  2. Выберите сценарий Random Walk.
  3. В поле Labels введите region=$region.
  4. Панель обновляется, когда вы выбираете другое значение в раскрывающемся списке region.

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

Вы можете создавать зависимые переменные, где запрос одной переменной ссылается на другую, создавая каскадные раскрывающиеся списки.

  1. Создайте переменную с именем region с запросом *. Это возвращает узлы верхнего уровня (от A до H).
  2. Создайте вторую переменную с именем host с запросом $region.*. Когда пользователь выбирает A в качестве региона, раскрывающийся список host заполняется значениями AA, AB, AC и т. д.

Изменение выбора региона автоматически обновляет раскрывающийся список host.

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

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

  • Labels
  • Alias
  • Scenario
  • String Input
  • CSV Content
  • Raw Frame Content

Используйте стандартный синтаксис переменных Grafana ($varname или ${varname}) в любом из этих полей, чтобы вставить значения переменных.

Пример

При переменной с именем env, установленной в production, ввод env=$env в поле Labels создаёт ряд с меткой env=production.

Ограничения

TestData не поддерживает использование фильтров. Фильтры требуют, чтобы источник данных реализовывал поиск ключей и значений тегов, который TestData не предоставляет.