Migrar a detecção inteligente do Application Insights do Azure Monitor para alertas (versão prévia)

Este artigo descreve o processo de migração de detecção inteligente do Application Insights para alertas. A migração cria regras de alerta para os diferentes módulos de detecção inteligente. Você pode gerenciar e configurar essas regras, como qualquer outra regra de alerta do Azure Monitor. Você também pode configurar grupos de ações para essas regras, para habilitar vários métodos de ações ou notificações em novas detecções.

Benefícios da migração para alertas

Com a migração, a detecção inteligente já permite que você aproveite as funcionalidades completas de alertas do Azure Monitor, incluindo:

  • Opções de notificação sofisticadas para todos os detectores: use grupos de ações para configurar vários tipos de notificações e ações que são disparadas quando um alerta é acionado. Você pode configurar a notificação por email, SMS, chamada de voz ou notificações por push. Você pode configurar ações como chamar um webhook seguro, um aplicativo lógico e um runbook de automação. Os grupos de ações amplia o gerenciamento em escala, permitindo que você configure as ações uma vez e use-as em várias regras de alerta.
  • Gerenciamento em escala: alertas de detecção inteligente usam a experiência de alertas e a API do Azure Monitor.
  • Supressão baseada em regra de notificações: use regras de ações para definir ou suprimir ações em qualquer escopo do Azure Resource Manager (assinatura do Azure, grupo de recursos ou recurso de destino). Filtros que ajudam a restringir o subconjunto específico de instâncias de alerta em que você deseja executar ações.

Funcionalidades de detecção inteligente migradas

Um conjunto de regras de alerta é criado quando um recurso do Application Insights é migrado. Uma regra é criada para cada uma das funcionalidades de detecção inteligente migradas. A seguinte tabela mapeia as funcionalidades de detecção inteligente pré-migração para as regras de alerta pós-migração.

Nome da regra de detecção inteligente (1) Nome da regra de alerta (2)
Degradação no tempo de resposta do servidor Degradação da latência de resposta – < Nome do recurso do Application Insights>
Degradação na duração da dependência Degradação da latência de dependência – < Nome do recurso do Application Insights>
Degradação na taxa de gravidade de rastreamento (visualização) Degradação da severidade do rastreamento – < Nome do recurso do Application Insights>
Aumento anormal no volume de exceção (visualização) Anomalias de exceção - <Nome do recurso do Application Insights>
Potencial perda de memória detectada (visualização) Possível perda de memória - <Nome do recurso do Application Insights>
Tempo de carregamento de página lento Não tem mais suporte (3)
Tempo de resposta do servidor lento Não tem mais suporte (3)
Duração da dependência longa Não tem mais suporte (3)
Potencial problema de segurança detectado (visualização) Não tem mais suporte (3)
Aumento anormal no volume de dados diários (versão preliminar) Não tem mais suporte (3)

(1) O nome da regra como ela aparece no painel Configurações de detecção inteligente.
(2) Nome da nova regra de alerta após a migração.
(3) Essas funcionalidades de detecção inteligente não são convertidas em alertas, devido ao baixo uso e à reavaliação da eficácia da detecção. Esses detectores deixarão de ter suporte para esse recurso depois que a migração for concluída.

Observação

O detector inteligente de Anomalias de Falha já foi criado como uma regra de alerta e não requer migração. Ele não é discutido neste artigo.

A migração não altera o design de algoritmo nem o comportamento da detecção inteligente. O mesmo desempenho de detecção é esperado antes e depois da alteração.

Você precisa aplicar a migração a cada recurso do Application Insights separadamente. Para os recursos que não são migrados explicitamente, a detecção inteligente continuará funcionando como antes.

Configuração do grupo de ações para as novas regras de alerta de detecção inteligente

Como parte da migração, cada nova regra de alerta é configurada automaticamente com um grupo de ações. A migração pode atribuir um grupo de ações padrão para cada regra. O grupo de ações padrão é configurado de acordo com a notificação de regra antes da migração:

  • Se a regra de detecção inteligente tiver o email padrão ou nenhuma notificação configurada, a nova regra de alerta será configurada com um grupo de ações chamado "Detecção Inteligente do Application Insights".

    • Se a ferramenta de migração encontrar um grupo de ações existente com esse nome, ela vinculará a nova regra de alerta a esse grupo de ações.
    • Caso contrário, ela criará um grupo de ações com esse nome. O novo grupo está configurado para as ações Enviar Email para a Função de Gerente do Azure Resource Manager envia uma notificação aos usuários Colaborador do Monitoramento e Leitor do Monitoramento do Azure Resource Manager.
  • Se a notificação por email padrão tiver sido alterada antes da migração, um grupo de ações chamado Detecção Inteligente do Application Insights <n> será criado, com uma ação de email que envia as notificações para os endereços de email configurados anteriormente.

Em vez de usar o grupo de ações padrão, selecione um grupo de ações existente que será configurado para todas as novas regras de alerta.

Executar o processo de migração de detecção inteligente

Use o portal do Azure, a CLI do Azure ou modelos do ARM (modelos do Azure Resource Manager) para executar a migração.

Migrar sua detecção inteligente usando o portal do Azure

Para migrar a detecção inteligente em seu recurso:

  1. Selecione Detecção inteligente sob o título Investigar no recurso do Application Insights.

  2. Selecione a faixa que indica "Migrar detecção inteligente para alertas (Versão prévia). A caixa de diálogo de migração é exibida.

    Screenshot that shows the Smart Detection feed banner.

  3. Selecione a opção Migrar todos os recursos do Application Insights nesta assinatura. Ou você pode deixar a opção desmarcada se quiser migrar apenas o recurso atual em que está.

    Observação

    Selecionar essa opção afeta todos os recursos existentes do Application Insights que ainda não foram migrados. Desde que a migração para alertas esteja em versão prévia, novos recursos do Application Insights ainda serão criados com a detecção inteligente sem alertas.

  4. Selecione um grupo de ações a ser configurado para as novas regras de alerta. Você pode usar o grupo de ações padrão conforme explicado acima ou usar um dos grupos de ações existentes.

  5. Selecione Migrar para iniciar o processo de migração.

    Screenshot that shows the Smart Detection migration dialog.

Após a migração, as regras de alerta são criadas para o recurso do Application Insights, conforme explicado.

Migrar sua detecção inteligente usando a CLI do Azure

Inicie a migração de detecção inteligente usando o comando a seguir da CLI do Azure. O comando dispara o processo de migração pré-configurado, conforme descrito anteriormente.

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

Para migrar um único recurso do Application Insights, o body.txt deve incluir:

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

Para migrar todos os recursos do Application Insights em uma assinatura, o body.txt deve incluir:

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

O parâmetro ActionGroupCreationPolicy seleciona a política para migrar as configurações de email nas regras de detecção inteligente para grupos de ações. Valores permitidos são:

  • Auto: usa os grupos de ações padrão, conforme descrito neste documento.
  • Personalizado: cria todas as regras de alerta com o grupo de ações especificado em customActionGroupName.
  • <blank> - Se ActionGroupCreationPolicy não for especificado, a política Auto será usada.

Migrar sua detecção inteligente usando modelos do ARM

Você pode disparar a migração de detecção inteligente para alertas de um recurso específico do Application Insights usando modelos do ARM. Para usar esse método, você precisa:

  • Criar uma regra de alerta de detecção inteligente para cada um dos detectores compatíveis.
  • Modificar as propriedades do Application Insight para indicar que a migração foi concluída.

Com esse método, você pode controlar quais regras de alerta serão criadas, definir um nome e uma descrição próprios da regra de alerta e selecionar qualquer grupo de ações desejado para cada regra.

Use os modelos a seguir para essa finalidade. Edite-os conforme necessário para fornecer sua ID de assinatura e o nome do recurso do 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'))]"
			]
		}
	]
}

Como ver seus alertas após a migração

Após a migração, você poderá ver seus alertas de detecção inteligente selecionando a entrada Alertas no recurso do Application Insights. Para Tipo de Sinal, selecione Detector Inteligente a fim de filtrar e apresentar apenas os alertas de detecção inteligente. Você pode selecionar um alerta para ver os detalhes da detecção.

Screenshot that shows smart detection alerts.

Você também pode ver as detecções disponíveis no feed de Detecção Inteligente do recurso do Application Insights.

Screenshot that shows the Smart Detection feed.

Gerencie as configurações de regras de alerta de detecção inteligente após a migração

Use os modelos do portal do Azure ou do ARM para gerenciar as configurações de regras de alerta de detecção inteligente após a migração.

Gerencie as configurações de regras de alerta usando o portal do Azure

Depois que a migração for concluída, você acessará as novas regras de alerta de detecção inteligente de maneira semelhante a outras regras de alerta definidas para o recurso.

  1. Selecione Alertas sob o título Monitoramento no menu do lado esquerdo do recurso do Application Insights.

    Screenshot that shows the Alerts menu.

  2. Selecione Gerenciar regras de alerta.

    Screenshot that shows Manage alert rules.

  3. Para Tipo de Sinal, selecione Detector Inteligente para filtrar e apresentar as regras de alerta de detecção inteligente.

    Screenshot that shows smart detection rules.

Habilitar ou desabilitar regras de alerta de detecção inteligente

As regras de alerta de detecção inteligente podem ser habilitadas ou desabilitadas por meio da interface do usuário do portal ou por meio de programação, assim como qualquer outra regra de alerta.

Se uma regra de detecção inteligente específica tiver sido desabilitada antes da migração, a nova regra de alerta também será desabilitada.

Configurar grupos de ações para suas regras

Você pode criar e gerenciar grupos de ações para as novas regras de alerta de detecção inteligente, como para qualquer outra regra de alerta do Azure Monitor.

Gerenciar configurações de regra de alerta usando modelos do ARM

Depois de concluir a migração, você poderá usar modelos do ARM para definir as configurações de regra de alerta de detecção inteligente.

Observação

Após a conclusão da migração, as configurações de detecção inteligente devem ser configuradas usando modelos de regra de alerta de detecção inteligente. Eles não podem mais ser configurados usando o modelo do Resource Manager do Application Insights.

Este exemplo de modelo do ARM demonstra como configurar uma regra de alerta Response Latency Degradation em um estado Enabled com uma severidade de 2.

  • A detecção inteligente é um serviço global. Portanto, a localização da regra é criada na localização global.

  • A propriedade id deve ser alterada de acordo com o detector específico configurado. O valor precisa ser um dos seguintes:

    • 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"]
                  }
            }
        }
    ]
}

Próximas etapas