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

Аннотации Azure Monitor

Аннотации накладывают насыщенную информацию о событиях поверх графиков. С помощью запросов Azure Monitor Log Analytics вы можете создавать аннотации, которые отмечают важные события, развёртывания, оповещения и другие значимые происшествия на ваших дашбордах.

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

  • Убедитесь, что вы настроили источник данных Azure Monitor.
  • Вам нужен доступ к рабочему пространству Log Analytics, содержащему данные, которые вы хотите использовать для аннотаций.
  • Аннотации используют только запросы Log Analytics (KQL). Запросы Metrics, Traces и Azure Resource Graph для аннотаций не поддерживаются.

Создание запроса аннотации

Чтобы добавить аннотацию Azure Monitor на дашборд:

  1. Перейдите к дашборду, который хотите изменить, и нажмите Edit.
  2. Нажмите значок Add new element (синий плюс).
  3. Нажмите Annotation query.
  4. Введите имя запроса аннотации.
  5. Если вы не хотите использовать запрос аннотации сразу, снимите флажок Enabled.
  6. Выберите цвет для маркеров событий аннотации.
  7. Выберите вариант в раскрывающемся списке Show annotation controls in, чтобы указать, где на дашборде отображается аннотация.
  8. Выберите вариант в раскрывающемся списке Show in, чтобы указать панели, на которых отображается аннотация.
  9. Нажмите Open query editor, чтобы открыть диалоговое окно Annotation Query.
  10. Выберите ваш источник данных Azure Monitor в раскрывающемся списке Data source.
  11. Выберите службу Logs.
  12. Выберите Resource (рабочее пространство Log Analytics или ресурс Application Insights).
  13. Напишите запрос KQL, возвращающий данные аннотации.
  14. Настройте запрос аннотации и сопоставления полей.
  15. (Необязательно) Нажмите Test annotation query, чтобы убедиться, что запрос работает корректно.
  16. Нажмите Close после завершения настройки запроса.
  17. Нажмите Save.
  18. (Необязательно) Введите описание внесённых изменений.
  19. Нажмите Save.
  20. Нажмите Exit edit.

Требования к запросу

Ваш запрос KQL должен возвращать столбцы, которые Grafana сможет использовать для создания аннотаций:

Столбец Обязательный Описание
TimeGenerated Да Отметка времени для аннотации. Grafana использует её для размещения аннотации на оси времени.
Text Рекомендуется Текст аннотации, отображаемый при наведении курсора или нажатии на аннотацию.
Дополнительные столбцы Необязательно Любые другие возвращённые столбцы становятся тегами аннотации.

Note

Всегда включайте в запрос фильтр по времени, чтобы ограничить результаты диапазоном времени дашборда. Используйте макрос $__timeFilter().

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

Следующие примеры демонстрируют типичные сценарии использования аннотаций.

События журнала действий Azure

Отображение событий журнала действий Azure, таких как изменения ресурсов, развёртывания и административные действия:

kusto
AzureActivity
| where $__timeFilter(TimeGenerated)
| where Level == "Error" or Level == "Warning" or CategoryValue == "Administrative"
| project TimeGenerated, Text=OperationNameValue, Level, ResourceGroup, Caller
| order by TimeGenerated desc
| take 100

События развёртывания

Отображение действий, связанных с развёртыванием:

kusto
AzureActivity
| where $__timeFilter(TimeGenerated)
| where OperationNameValue contains "deployments"
| project TimeGenerated, Text=strcat("Deployment: ", OperationNameValue), Status=ActivityStatusValue, ResourceGroup
| order by TimeGenerated desc

Исключения Application Insights

Отметка исключений приложения в виде аннотаций:

kusto
AppExceptions
| where $__timeFilter(TimeGenerated)
| project TimeGenerated, Text=strcat(ProblemId, ": ", OuterMessage), SeverityLevel, AppRoleName
| order by TimeGenerated desc
| take 50

Пользовательские события из Application Insights

Отображение пользовательских событий, зарегистрированных вашим приложением:

kusto
AppEvents
| where $__timeFilter(TimeGenerated)
| where Name == "DeploymentStarted" or Name == "DeploymentCompleted"
| project TimeGenerated, Text=Name, AppRoleName
| order by TimeGenerated desc

Оповещения безопасности

Отображение оповещений, связанных с безопасностью:

kusto
SecurityAlert
| where $__timeFilter(TimeGenerated)
| project TimeGenerated, Text=AlertName, Severity=AlertSeverity, Description
| order by TimeGenerated desc
| take 50

События работоспособности ресурсов

Отображение изменений состояния работоспособности ресурсов:

kusto
AzureActivity
| where $__timeFilter(TimeGenerated)
| where CategoryValue == "ResourceHealth"
| project TimeGenerated, Text=OperationNameValue, Status=ActivityStatusValue, ResourceId
| order by TimeGenerated desc

События запуска и остановки виртуальных машин

Отметка изменений состояния виртуальных машин:

kusto
AzureActivity
| where $__timeFilter(TimeGenerated)
| where OperationNameValue has_any ("start", "deallocate", "restart")
| where ResourceProviderValue == "MICROSOFT.COMPUTE"
| project TimeGenerated, Text=OperationNameValue, VM=Resource, Status=ActivityStatusValue
| order by TimeGenerated desc

События автомасштабирования

Отображение операций автомасштабирования:

kusto
AzureActivity
| where $__timeFilter(TimeGenerated)
| where OperationNameValue contains "autoscale"
| project TimeGenerated, Text=strcat("Autoscale: ", OperationNameValue), Status=ActivityStatusValue, ResourceGroup
| order by TimeGenerated desc

Настройка внешнего вида аннотаций

После создания запроса аннотации вы можете настроить её внешний вид:

Параметр Описание
Color Выберите цвет маркеров аннотации. Используйте разные цвета, чтобы различать типы аннотаций.
Show in Выберите, на каких панелях отображаются аннотации.
Filter by Добавьте фильтры, чтобы ограничить, когда появляются аннотации.

Рекомендации

Следуйте этим рекомендациям при создании аннотаций:

  1. Ограничивайте результаты: всегда используйте take или limit, чтобы ограничить количество аннотаций. Слишком много аннотаций может загромоздить дашборд и снизить производительность.

  2. Используйте фильтры по времени: включайте $__timeFilter(), чтобы запросы возвращали данные только в пределах диапазона времени дашборда.

  3. Создавайте осмысленный текст: используйте strcat() или project для создания описательного текста аннотации, который даёт контекст с первого взгляда.

  4. Добавляйте подходящие теги: включайте столбцы вроде ResourceGroup, Severity или Status, которые становятся кликабельными тегами для фильтрации.

  5. Используйте описательные имена: давайте аннотациям понятные имена (например, “Production Deployments”, “Critical Alerts”), чтобы пользователи дашборда понимали, что они означают.

Устранение неполадок с аннотациями

Если аннотации не отображаются как ожидалось, попробуйте следующие решения.

Аннотации не отображаются

  • Проверьте, что запрос возвращает данные в выбранном диапазоне времени.
  • Проверьте, что запрос включает столбец TimeGenerated.
  • Проверьте запрос в редакторе запросов Log Analytics на портале Azure.
  • Убедитесь, что аннотация включена (переключатель активирован).

Слишком много аннотаций

  • Добавьте более конкретные фильтры в запрос.
  • Используйте take, чтобы ограничить результаты.
  • Сузьте диапазон времени.

Аннотации отображаются в неправильное время

  • Проверьте, что столбец TimeGenerated содержит правильную отметку времени.
  • Проверьте настройки часового пояса вашего дашборда.