Переменные шаблонов TestData
Используйте переменные шаблонов с источником данных TestData, чтобы тестировать динамические, многократно используемые дашборды. TestData предоставляет иерархическое дерево метрик, которое вы можете запрашивать, чтобы заполнять раскрывающиеся списки переменных смоделированными значениями.
Введение в шаблонизацию и переменные шаблонов см. в документации Шаблонизация и Добавление переменных и управление ими.
Поддерживаемые типы переменных
Создание переменной запроса
Чтобы создать переменную запроса с использованием TestData:
- Перейдите к дашборду, который хотите обновить, и нажмите Edit.
- Нажмите значок Add new element (синий знак плюс).
- Нажмите Variable.
- Выберите Query в качестве типа переменной.
- Введите Name для вашей переменной.
- Выберите опцию в раскрывающемся списке Display, чтобы управлять тем, где на дашборде отображается переменная.
- Нажмите Open variable editor, чтобы открыть диалоговое окно Query Variable.
- Выберите источник данных TestData.
- Введите ваш запрос в поле Query.
Запросы дерева метрик
TestData генерирует иерархическое дерево метрик с узлами, именованными с помощью комбинаций букв. Дерево имеет 6 уровней глубины, при этом каждый уровень содержит 8 узлов, помеченных от A до H. Строка запроса перемещается по этому дереву, используя сегменты пути, разделённые точками.
Синтаксис запроса
Используйте * как подстановочный знак для возврата всех дочерних узлов на данном уровне:
Используйте glob-шаблоны с фигурными скобками для сопоставления нескольких узлов:
Используйте * после префикса для сопоставления узлов, начинающихся с данной строки:
Запросы значений
Если ваша строка запроса начинается с value, TestData возвращает саму строку запроса как результат. Это полезно для создания переменных с конкретными значениями для тестирования. Например, запрос value_production возвращает value_production.
Пример: создание переменной region
Этот пример описывает создание переменной запроса, которая заполняет раскрывающийся список смоделированными значениями регионов, а затем её использование в запросе панели.
- Перейдите к дашборду, который хотите обновить, и нажмите Edit.
- Нажмите значок Add new element (синий знак плюс).
- Нажмите Variable.
- Выберите Query в качестве типа переменной.
- Введите Name для вашей переменной (например,
host). - Выберите опцию в раскрывающемся списке Display, чтобы управлять тем, где на дашборде отображается переменная.
- Нажмите Open variable editor, чтобы открыть диалоговое окно Query Variable.
- Выберите источник данных TestData.
- Введите
*в поле Query. Это заполняет переменную узлами верхнего уровня (от A до H). - Назовите переменную
region. - Нажмите Close, когда завершите настройку запроса.
- (Необязательно) Настройте Multi-value, чтобы разрешить выбор нескольких значений.
- (Необязательно) Настройте Include All value, чтобы добавить опцию «All».
- (Необязательно) Включите переключатель Allow custom values, чтобы разрешить пользователям вводить пользовательские значения переменной.
- Нажмите Save.
- (Необязательно) Введите описание внесённых изменений.
- Нажмите Save.
- Нажмите Exit edit.
Чтобы использовать переменную на панели:
- Добавьте новую панель и выберите источник данных TestData.
- Выберите сценарий Random Walk.
- В поле Labels введите
region=$region. - Панель обновляется, когда вы выбираете другое значение в раскрывающемся списке region.
Пример: связывание переменных для каскадных раскрывающихся списков
Вы можете создавать зависимые переменные, где запрос одной переменной ссылается на другую, создавая каскадные раскрывающиеся списки.
- Создайте переменную с именем
regionс запросом*. Это возвращает узлы верхнего уровня (от A до H). - Создайте вторую переменную с именем
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 не предоставляет.