Последнее обновление: мая 12, 2026

Переменные шаблона Azure Monitor

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

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

Прежде чем начать

  • Убедитесь, что вы настроили источник данных Azure Monitor.
  • Если вы хотите, чтобы переменные шаблона автоматически заполняли подписки, задайте Default Subscription в настройках источника данных.

Создание переменной шаблона

Чтобы создать переменную шаблона для Azure Monitor:

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

Доступные типы запросов

Источник данных Azure Monitor предоставляет следующие типы запросов для переменных шаблона:

Тип запроса Описание
Subscriptions Возвращает список подписок Azure, доступных настроенным учётным данным.
Resource Groups Возвращает группы ресурсов для указанной подписки. Поддерживает выбор нескольких значений.
Namespaces Возвращает пространства имён метрик для указанной подписки. Если указана группа ресурсов, возвращает только пространства имён внутри неё.
Regions Возвращает регионы Azure, доступные для указанной подписки.
Resource Names Возвращает имена ресурсов для указанных подписки, группы ресурсов и пространства имён. Поддерживает выбор нескольких значений.
Metric Names Возвращает доступные имена метрик для указанного ресурса.
Workspaces Возвращает рабочие области Log Analytics для указанной подписки.
Logs Выполняет запрос KQL и возвращает результаты как значения переменной. См. Создание переменной Logs.
Custom Namespaces Возвращает пользовательские пространства имён метрик для указанного ресурса.
Custom Metric Names Возвращает имена пользовательских метрик для указанного ресурса.

Note

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

Создание каскадных переменных

Каскадные переменные (также называемые зависимыми или связанными переменными) позволяют создавать раскрывающиеся списки, которые фильтруются на основе предыдущих выборов. Это удобно для детализации от подписки к группе ресурсов и далее к конкретному ресурсу.

Пример: подписка → группа ресурсов → имя ресурса

Шаг 1: создайте переменную подписки

  1. Создайте переменную с именем subscription.
  2. Установите Query Type в значение Subscriptions.

Шаг 2: создайте переменную группы ресурсов

  1. Создайте переменную с именем resourceGroup.
  2. Установите Query Type в значение Resource Groups.
  3. В поле Subscription выберите $subscription.

Шаг 3: создайте переменную имени ресурса

  1. Создайте переменную с именем resource.
  2. Установите Query Type в значение Resource Names.
  3. В поле Subscription выберите $subscription.
  4. В поле Resource Group выберите $resourceGroup.
  5. Выберите подходящий Namespace для ваших ресурсов (например, Microsoft.Compute/virtualMachines).

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

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

Тип запроса Logs позволяет использовать запрос KQL для заполнения значений переменной. Запрос должен возвращать один столбец значений.

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

  1. Создайте новую переменную с Query Type, установленным в Logs.
  2. Выберите Resource (рабочую область Log Analytics или ресурс Application Insights).
  3. Введите запрос KQL, возвращающий один столбец.

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

Запрос Возвращает
Heartbeat | distinct Computer Список имён виртуальных машин
Perf | distinct ObjectName Список имён объектов производительности
AzureActivity | distinct ResourceGroup Список групп ресурсов с активностью
AppRequests | distinct Name Список имён запросов приложений

В запросе Logs можно ссылаться на другие переменные:

kusto
workspace("$workspace").Heartbeat | distinct Computer
kusto
workspace("$workspace").Perf
| where ObjectName == "$object"
| distinct CounterName

Параметры обновления переменных

Управляйте тем, когда обновляются переменные, задавая параметр Refresh:

Параметр Поведение
On dashboard load Переменные обновляются при каждой загрузке дашборда. Лучший вариант для редко меняющихся данных.
On time range change Переменные обновляются при изменении диапазона времени дашборда. Используйте для чувствительных ко времени запросов.

Для дашбордов с большим числом переменных или сложными запросами используйте On dashboard load, чтобы повысить производительность.

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

После создания переменных шаблона вы можете использовать их в своих запросах Azure Monitor, ссылаясь на них с префиксом $.

Пример запроса к метрикам

В запросе к метрикам выберите свои переменные в полях выбора ресурса:

  • Subscription: $subscription
  • Resource Group: $resourceGroup
  • Resource Name: $resource

Пример запроса к журналам

Ссылайтесь на переменные прямо в запросах KQL:

kusto
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(), чтобы корректно обрабатывать многозначные переменные.