Перенос приложения Azure Monitor Аналитика интеллектуального обнаружения в оповещения (предварительная версия)

В этой статье описывается процесс перевода интеллектуального обнаружения Application Insights на основу оповещений. При миграции создаются правила генерации оповещений для различных модулей интеллектуального обнаружения. Эти правила можно управлять и настраивать, как и любые другие правила генерации оповещений Azure Monitor. Вы также можете настроить группы действий для этих правил, чтобы получить несколько методов действий или уведомлений о новых обнаружениях.

Преимущества перехода на оповещения

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

  • Расширенные параметры уведомлений для всех детекторов: используйте группы действий для настройки нескольких типов уведомлений и действий, которые активируются при срабатывании оповещения. Вы можете настроить уведомления по электронной почте, SMS, голосовой вызову или push-уведомлениям. Вы можете настроить такие действия, как вызов безопасного веб-перехватчика, приложения логики и runbook автоматизации. Группы действий расширяют возможности управления, позволяя настроить действия один раз и использовать их в различных правилах генерации оповещений.
  • Управление в масштабе. Оповещения интеллектуального обнаружения используют интерфейсы оповещений Azure Monitor и API.
  • Подавление уведомлений на основе правил. Используйте правила действий для определения или подавления действий на любых область Azure Resource Manager, таких как подписка Azure, группа ресурсов или целевой ресурс. Фильтры помогают сузить определенное подмножество экземпляров оповещений, над которыми вы хотите действовать.

Возможности интеллектуального обнаружения после миграции

При переносе ресурса application Аналитика создается новый набор правил генерации оповещений. Для каждой возможности интеллектуального обнаружения создается одно правило. В следующей таблице перечислены возможности интеллектуального обнаружения до миграции с правилами генерации оповещений после миграции.

Имя правила интеллектуального обнаружения (1) Имя правила генерации оповещений (2)
Увеличение времени отклика сервера Снижение задержки ответа — <Имя ресурса Application Insights>
Увеличение времени отклика зависимостей Снижение задержки зависимости — <Имя ресурса Application Insights>
Ухудшение соотношения серьезности трассировок (предварительная версия) Снижение задержки трассировки — <Имя ресурса Application Insights>
Чрезмерное увеличение числа исключений (предварительная версия) Аномалии исключений — <Имя ресурса Application Insights>
Обнаружена возможная утечка памяти (предварительная версия) Возможная утечка памяти — <Имя ресурса Application Insights>
Большое время загрузки страниц Больше не поддерживается (3)
Большое время отклика сервера Больше не поддерживается (3)
Длительное время отклика зависимостей Больше не поддерживается (3)
Обнаружена возможная проблема с безопасностью (предварительная версия) Больше не поддерживается (3)
Чрезмерное увеличение ежедневного объема данных исключений (предварительная версия) Больше не поддерживается (3)

(1) Имя правила, как оно отображается в области интеллектуального обнаружения Параметры.
(2) Имя нового правила генерации оповещений после миграции.
(3) Эти возможности интеллектуального обнаружения не преобразуются в оповещения из-за низкой использования и повторной оценки эффективности обнаружения. Эти детекторы больше не будут поддерживаться для этого ресурса после завершения миграции.

Примечание.

Интеллектуальный детектор аномалий сбоя уже создан в качестве правила генерации оповещений и не требует миграции. Он не рассматривается в этой статье.

Миграция не вызывает изменения алгоритмической структуры и поведения интеллектуального обнаружения. После миграции эффективность обнаружения не меняется.

Миграцию каждого ресурса Application Insights необходимо выполнять отдельно. Для ресурсов, которые не переносятся явным образом, интеллектуальное обнаружение будет работать как раньше.

Настройка групп действий для новых правил генерации оповещений интеллектуального обнаружения

В рамках миграции для каждого нового правила генерации оповещений автоматически настраивается группа действий. При миграции каждому правилу может назначаться группа действий по умолчанию. Группа действий по умолчанию настраивается в соответствии с уведомлением правила перед миграцией.

  • Если правило интеллектуального обнаружения было настроено по умолчанию или нет уведомлений, новое правило генерации оповещений настроено с помощью группы действий с именем Application Аналитика Smart Detection.

    • Если средство миграции обнаруживает существующую группу действий с таким именем, оно связывает новое правило генерации оповещений с ней.
    • В противном случае создается новая группа действий с таким именем. Новая группа настроена для действий роли Azure Resource Manager электронной почты и отправляет уведомления пользователям службы "Участник мониторинга Azure Resource Manager" и "Читатель мониторинга".
  • Если уведомление по умолчанию было изменено до миграции, создается группа действий с именем Application Аналитика Smart Detection <n>, с действием отправки уведомлений по электронной почте на ранее настроенные адреса электронной почты.

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

Выполнение процесса миграции интеллектуального обнаружения

Для выполнения миграции используйте портал Azure, Azure CLI или шаблоны Azure Resource Manager (шаблоны ARM).

Перенос интеллектуального обнаружения с помощью портал Azure

Чтобы перенести интеллектуальное обнаружение в ресурсе, выполните приведенные далее действия.

  1. Выберите "Интеллектуальное обнаружение" в заголовке "Исследование" в ресурсе приложения Аналитика.

  2. Выберите баннер с чтением функции "Миграция интеллектуального обнаружения" в оповещения (предварительная версия). Откроется диалоговое окно миграции.

    Screenshot that shows the Smart Detection feed banner.

  3. Выберите параметр "Перенести все ресурсы приложения Аналитика" в этом параметре подписки. Вы также можете удалить параметр, если вы хотите перенести только текущий ресурс, в который вы находитесь.

    Примечание.

    Выбор этого параметра влияет на все существующие ресурсы приложения Аналитика, которые еще не перенесены. Пока миграция на оповещения находится на этапе предварительной версии, новые ресурсы Application Insights будут по-прежнему создаваться с интеллектуальным обнаружением без оповещений.

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

  5. Выберите Миграция, чтобы начать процесс миграции.

    Screenshot that shows the Smart Detection migration dialog.

После миграции для ресурса Application Insights создаются новые правила генерации оповещений, как описано.

Перенос интеллектуального обнаружения с помощью Azure CLI

Запустите миграцию интеллектуального обнаружения с помощью следующей команды Azure CLI. Команда активирует предварительно настроенный процесс миграции, как описано ранее.

az rest --method POST --uri /subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/migrateFromSmartDetection?api-version=2021-01-01-preview --body @body.txt

Чтобы перенести один ресурс приложения Аналитика, body.txt должен включать следующее:

{
      "scope": [
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/{resourceName}"
      ],
      "actionGroupCreationPolicy" : "{Auto/Custom}",
      "customActionGroupName" : "{actionGroupName}"           
}

Чтобы перенести все ресурсы приложения Аналитика в подписке, body.txt должен включать следующее:

{
      "scope": [
	"/subscriptions/{subscriptionId} "
      ],
      "actionGroupCreationPolicy" : "{Auto/Custom}",
      "customActionGroupName" : "{actionGroupName}"           
}

Параметр ActionGroupCreationPolicy выбирает политику для переноса параметров электронной почты в правилах интеллектуального обнаружения в группы действий. Допустимые значения:

  • Авто: использует группы действий по умолчанию, как описано в этом документе.
  • Custom: создает все правила генерации оповещений с группой действий, указанной в customActionGroupName.
  • <пусто>: если ActionGroupCreationPolicy не указано, Auto используется политика.

Перенос интеллектуального обнаружения с помощью шаблонов ARM

Вы можете активировать миграцию интеллектуального обнаружения для оповещений для определенного ресурса приложения Аналитика с помощью шаблонов ARM. Чтобы использовать этот метод, необходимо выполнить следующие действия.

  • Создайте правило генерации оповещений интеллектуального обнаружения для каждого поддерживаемого детектора.
  • Измените свойства Application Insights, чтобы указать, что миграция завершена.

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

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

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
	"parameters": {
		"applicationInsightsResourceName": {
			"type": "string"
		},
		"actionGroupName": {
			"type": "string",
			"defaultValue": "Application Insights Smart Detection"
		},
		"actionGroupResourceGroup": {
			"type": "string",
			"defaultValue": "[resourceGroup().Name]"
		}
	},
	"variables": {
		"applicationInsightsResourceId": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',resourceGroup().Name,'/providers/microsoft.insights/components/',parameters('applicationInsightsResourceName'))]",
		"actionGroupId": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('actionGroupResourceGroup'),'/providers/microsoft.insights/ActionGroups/',parameters('actionGroupName'))]",
		"requestPerformanceDegradationDetectorRuleName": "[concat('Response Latency Degradation - ', parameters('applicationInsightsResourceName'))]",
		"dependencyPerformanceDegradationDetectorRuleName": "[concat('Dependency Latency Degradation - ', parameters('applicationInsightsResourceName'))]",
		"traceSeverityDetectorRuleName": "[concat('Trace Severity Degradation - ', parameters('applicationInsightsResourceName'))]",
		"exceptionVolumeChangedDetectorRuleName": "[concat('Exception Anomalies - ', parameters('applicationInsightsResourceName'))]",
		"memoryLeakRuleName": "[concat('Potential Memory Leak - ', parameters('applicationInsightsResourceName'))]"
	},
	"resources": [
		{
			"name": "[variables('requestPerformanceDegradationDetectorRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Response Latency Degradation notifies you of an unusual increase in latency in your app response to requests.",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "RequestPerformanceDegradationDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {	
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[variables('dependencyPerformanceDegradationDetectorRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Dependency Latency Degradation notifies you of an unusual increase in response by a dependency your app is calling (e.g. REST API or database)",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "DependencyPerformanceDegradationDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[variables('traceSeverityDetectorRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Trace Severity Degradation notifies you of an unusual increase in the severity of the traces generated by your app.",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "TraceSeverityDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[variables('exceptionVolumeChangedDetectorRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Exception Anomalies notifies you of an unusual rise in the rate of exceptions thrown by your app.",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "ExceptionVolumeChangedDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[variables('memoryLeakRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Potential Memory Leak notifies you of increased memory consumption pattern by your app which may indicate a potential memory leak.",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "MemoryLeakDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[concat(parameters('applicationInsightsResourceName'),'/migrationToAlertRulesCompleted')]",
			"type": "Microsoft.Insights/components/ProactiveDetectionConfigs",
			"location": "[resourceGroup().location]",
			"apiVersion": "2018-05-01-preview",
			"properties": {
				"name": "migrationToAlertRulesCompleted",
				"sendEmailsToSubscriptionOwners": false,
				"customEmails": [],
				"enabled": true
			},
			"dependsOn": [
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('requestPerformanceDegradationDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('dependencyPerformanceDegradationDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('traceSeverityDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('exceptionVolumeChangedDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('memoryLeakRuleName'))]"
			]
		}
	]
}

Просмотр оповещений после миграции

После миграции вы можете просмотреть оповещения интеллектуального обнаружения, выбрав запись "Оповещения" в ресурсе приложения Аналитика. Для типа Signal выберите Smart Detector для фильтрации и представления только оповещений интеллектуального обнаружения. Вы можете выбрать оповещение, чтобы просмотреть сведения об обнаружении.

Screenshot that shows smart detection alerts.

Вы также можете просмотреть доступные обнаружения в веб-канале интеллектуального обнаружения ресурса Аналитика приложения.

Screenshot that shows the Smart Detection feed.

Управление параметрами правил генерации оповещений интеллектуального обнаружения после миграции

Используйте портал Azure или шаблоны ARM для управления параметрами правил генерации оповещений интеллектуального обнаружения после миграции.

Управление параметрами правил генерации оповещений с помощью портал Azure

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

  1. Выберите оповещения в заголовке "Мониторинг" в ресурсе приложения Аналитика.

    Screenshot that shows the Alerts menu.

  2. Выберите " Управление правилами генерации оповещений".

    Screenshot that shows Manage alert rules.

  3. Для типа Signal выберите Smart Detector для фильтрации и представления правил генерации оповещений интеллектуального обнаружения.

    Screenshot that shows smart detection rules.

Включение или отключение правил генерации оповещений интеллектуального обнаружения

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

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

Настройка групп действий для правил генерации оповещений

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

Управление параметрами правила генерации оповещений с помощью шаблонов ARM

После завершения миграции можно использовать шаблоны ARM для настройки параметров правила генерации оповещений интеллектуального обнаружения.

Примечание.

После завершения миграции параметры интеллектуального обнаружения необходимо настроить с помощью шаблонов правил генерации оповещений интеллектуального обнаружения. Они больше не могут быть настроены с помощью шаблона Application Аналитика Resource Manager.

В этом примере шаблона ARM показано, как настроить Response Latency Degradation правило генерации оповещений Enabled в состоянии с серьезностью 2.

  • Интеллектуальное обнаружение — это глобальная служба, поэтому в расположении global создается расположение правила.

  • Свойство id должно измениться в соответствии с заданным детектором. Возможны следующие значения:

    • FailureAnomaliesDetector
    • RequestPerformanceDegradationDetector
    • DependencyPerformanceDegradationDetector
    • ExceptionVolumeChangedDetector
    • TraceSeverityDetector
    • MemoryLeakDetector
{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "microsoft.alertsmanagement/smartdetectoralertrules",
            "apiVersion": "2019-03-01",
            "name": "Response Latency Degradation - my-app",
            "location": "global", 
            "properties": {
                  "description": "Response Latency Degradation notifies you of an unusual increase in latency in your app response to requests.",
                  "state": "Enabled",
                  "severity": "2",
                  "frequency": "PT24H",
                  "detector": {
                  "id": "RequestPerformanceDegradationDetector"
                  },
                  "scope": ["/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/microsoft.insights/components/my-app"],
                  "actionGroups": {
                        "groupIds": ["/subscriptions/00000000-1111-2222-3333-444444444444/resourcegroups/MyResourceGroup/providers/microsoft.insights/actiongroups/MyActionGroup"]
                  }
            }
        }
    ]
}

Следующие шаги