Переменные шаблона Azure Monitor
Вместо того чтобы жёстко задавать в запросах к метрикам такие значения, как группа ресурсов или имя ресурса, можно использовать переменные. Это помогает создавать более интерактивные, динамичные и переиспользуемые дашборды. В Grafana такие переменные называются переменными шаблона.
Введение в шаблонизацию и переменные шаблона смотрите в разделах Шаблонизация и Добавление переменных и управление ими.
Прежде чем начать
- Убедитесь, что вы настроили источник данных Azure Monitor.
- Если вы хотите, чтобы переменные шаблона автоматически заполняли подписки, задайте Default Subscription в настройках источника данных.
Создание переменной шаблона
Чтобы создать переменную шаблона для Azure Monitor:
- Перейдите к дашборду, который хотите изменить, и нажмите Edit.
- Нажмите значок Add new element (синий плюс).
- Нажмите Variable.
- Выберите Query в качестве типа переменной.
- Введите Name переменной (например,
subscription,resourceGroup,resource). - Выберите вариант в раскрывающемся списке Display, чтобы задать, где на дашборде отображается переменная.
- Нажмите Open variable editor, чтобы открыть диалоговое окно Query Variable.
- В раскрывающемся списке Data source выберите ваш источник данных Azure Monitor.
- В раскрывающемся списке Query Type выберите подходящий тип запроса (см. Доступные типы запросов).
- Настройте дополнительные поля, требуемые выбранным типом запроса.
- Нажмите Preview, чтобы просмотреть значения переменной.
- Нажмите Close, чтобы закрыть диалоговое окно редактора переменной запроса.
- При необходимости настройте параметры отображения, такие как Multi-value, Include All value или Allow custom values.
- Нажмите Save.
- (Необязательно) Введите описание внесённых изменений.
- Нажмите Save.
- Нажмите Exit edit.
Доступные типы запросов
Источник данных Azure Monitor предоставляет следующие типы запросов для переменных шаблона:
Note
Пользовательские метрики нельзя публиковать для подписки или группы ресурсов. Выбирайте конкретные ресурсы при получении пользовательских пространств имён метрик или имён пользовательских метрик.
Создание каскадных переменных
Каскадные переменные (также называемые зависимыми или связанными переменными) позволяют создавать раскрывающиеся списки, которые фильтруются на основе предыдущих выборов. Это удобно для детализации от подписки к группе ресурсов и далее к конкретному ресурсу.
Пример: подписка → группа ресурсов → имя ресурса
Шаг 1: создайте переменную подписки
- Создайте переменную с именем
subscription. - Установите Query Type в значение Subscriptions.
Шаг 2: создайте переменную группы ресурсов
- Создайте переменную с именем
resourceGroup. - Установите Query Type в значение Resource Groups.
- В поле Subscription выберите
$subscription.
Шаг 3: создайте переменную имени ресурса
- Создайте переменную с именем
resource. - Установите Query Type в значение Resource Names.
- В поле Subscription выберите
$subscription. - В поле Resource Group выберите
$resourceGroup. - Выберите подходящий Namespace для ваших ресурсов (например,
Microsoft.Compute/virtualMachines).
Теперь при изменении подписки раскрывающийся список групп ресурсов обновляется автоматически, а при изменении группы ресурсов обновляется раскрывающийся список имён ресурсов.
Создание переменной Logs
Тип запроса Logs позволяет использовать запрос KQL для заполнения значений переменной. Запрос должен возвращать один столбец значений.
Чтобы создать переменную Logs:
- Создайте новую переменную с Query Type, установленным в Logs.
- Выберите Resource (рабочую область Log Analytics или ресурс Application Insights).
- Введите запрос KQL, возвращающий один столбец.
Примеры запросов переменной Logs
В запросе Logs можно ссылаться на другие переменные:
workspace("$workspace").Heartbeat | distinct Computer
workspace("$workspace").Perf
| where ObjectName == "$object"
| distinct CounterName
Параметры обновления переменных
Управляйте тем, когда обновляются переменные, задавая параметр Refresh:
Для дашбордов с большим числом переменных или сложными запросами используйте On dashboard load, чтобы повысить производительность.
Использование переменных в запросах
После создания переменных шаблона вы можете использовать их в своих запросах Azure Monitor, ссылаясь на них с префиксом $.
Пример запроса к метрикам
В запросе к метрикам выберите свои переменные в полях выбора ресурса:
- Subscription:
$subscription - Resource Group:
$resourceGroup - Resource Name:
$resource
Пример запроса к журналам
Ссылайтесь на переменные прямо в запросах KQL:
Perf
| where ObjectName == "$object" and CounterName == "$metric"
| where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo()
| where $__contains(Computer, $computer)
| summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer
| order by TimeGenerated asc
Многозначные переменные
Для переменных Resource Groups и Resource Names можно включить выбор Multi-value. При использовании многозначных переменных в запросе к метрикам все выбранные ресурсы должны:
- Относиться к одной подписке
- Находиться в одном регионе Azure
- Иметь один и тот же тип ресурса (пространство имён)
Note
Когда многозначная переменная используется как параметр в запросе другой переменной (например, для получения имён метрик), используется только первое выбранное значение. Убедитесь, что комбинация первой группы ресурсов и первого имени ресурса корректна.
Устранение неполадок с переменными шаблона
Если у вас возникли проблемы с переменными шаблона, попробуйте следующие решения. Дополнительные сведения по устранению неполадок смотрите в руководстве по устранению неполадок Azure Monitor.
Переменная не возвращает значений
- Убедитесь, что источник данных Azure Monitor настроен правильно и может подключаться к Azure.
- Проверьте, что у учётных данных есть нужные разрешения для перечисления запрашиваемых ресурсов.
- Для каскадных переменных убедитесь, что родительские переменные имеют корректные значения.
Значения переменной устарели
- Проверьте настройку Refresh и при необходимости скорректируйте её.
- Нажмите значок обновления рядом с раскрывающимся списком переменной, чтобы обновить её вручную.
Переменные перестают работать после обновления Grafana
Если после обновления Grafana переменные шаблона возвращают ошибки вида Properties found in series but missing valueProp and textProp, это обычно указывает на ошибку, специфичную для конкретной версии. Обновитесь до последнего патч-релиза вашей версии Grafana. Для Grafana Cloud проверьте, что вы используете канал релизов stable. Подробные решения смотрите в разделе
Ошибки переменных шаблона.
Выбор нескольких значений не работает в запросах
- Убедитесь, что ресурсы соответствуют требованиям (одна подписка, регион и тип).
- Для запросов к журналам используйте макрос
$__contains(), чтобы корректно обрабатывать многозначные переменные.