Migración de la detección inteligente de Application Insights de Azure Monitor a las alertas (versión preliminar)

En este artículo se describe el proceso de migración de detección inteligente de Application Insights a alertas. La migración crea reglas de alerta para los distintos módulos de detección inteligente. Puede administrar y configurar dichas reglas como cualquier otra regla de alerta de Azure Monitor. También puede configurar grupos de acciones para estas reglas para obtener varios métodos de acciones o notificaciones para nuevas detecciones.

Ventajas de la migración a las alertas

Al migrar, puede aprovechar las funcionalidades completas de las alertas de Azure Monitor, entre las que se incluyen:

  • Amplias opciones de notificación para todos los detectores: Use grupos de acciones para configurar distintos tipos de notificaciones y acciones que se desencadenan cuando se produce una alerta. Puede configurar notificaciones por correo electrónico, SMS, llamada de voz o notificaciones push. Puede configurar acciones como invocar un webhook seguro, una aplicación lógica y un runbook de automatización. Los grupos de acciones promueven la administración a gran escala, ya que le permiten configurar acciones una vez y usarlas en varias reglas de alerta.
  • Administración a gran escala: las alertas de detección inteligente usan la experiencia de alertas de Azure Monitor y la API.
  • Supresión de notificaciones basada en reglas: use reglas de procesamiento de alertas para definir o suprimir acciones en cualquier ámbito de Azure Resource Manager, como la suscripción de Azure, el grupo de recursos o el recurso específico. Los filtros le ayudan a reducir el subconjunto específico de instancias de alerta sobre las que quiere actuar.

Funcionalidades migradas de detección inteligente

Se crea un nuevo conjunto de reglas de alertas al migrar un recurso de Application Insights. Se crea una regla para cada una de las funcionalidades de detección inteligente migradas. En la tabla siguiente se asignan las funcionalidades de detección inteligente anteriores de la migración a las reglas de alerta posteriores a la migración.

Nombre de la regla de detección inteligente (1) Nombre de la regla de alerta (2)
Degradación del tiempo de respuesta del servidor Degradación de la latencia de respuesta: <nombre del recurso de Application Insights>
Reducción de la duración de la dependencia Degradación de la latencia de dependencia - <nombre del recurso de Application Insights>
Degradación en la proporción de gravedad de la traza (versión preliminar) Degradación de la gravedad del seguimiento: <nombre del recurso de Application Insights>
Aumento anormal del volumen de excepciones (versión preliminar) Anomalías de excepción: <nombre del recurso de Application Insights>
Detección de una posible fuga de memoria (versión preliminar) Fuga de memoria posible: <nombre del recurso de Application Insights>
Carga lenta de página Ya no se admite (3)
Lentitud en el tiempo de respuesta del servidor Ya no se admite (3)
Duración de la dependencia prolongada Ya no se admite (3)
Detección de un posible problema de seguridad (versión preliminar) Ya no se admite (3)
Aumento anómalo del volumen de datos diario (versión preliminar) Ya no se admite (3)

(1) El nombre de la regla tal como aparece en el panel Configuración de la detección inteligente.
(2) El nombre de la nueva regla de alerta después de la migración.
(3) Estas funcionalidades de detección inteligente no se convierten en alertas, debido al bajo uso y a la reevaluación de la eficacia de detección. Estos detectores no son compatibles con este recurso después de que finalice su migración.

Nota:

El detector inteligente Anomalías en los errores ya se ha creado como una regla de alerta y no requiere migración. Este detector no se describe en este artículo.

La migración no cambia el diseño algorítmico ni el comportamiento de la detección inteligente. Puede esperar el mismo rendimiento de detección antes y después del cambio.

Tiene que aplicar la migración a cada recurso de Application Insights por separado. En el caso de los recursos que no se migran explícitamente, la detección inteligente continúa funcionando como antes.

Configuración del grupo de acciones para las nuevas reglas de alerta de detección inteligente

Como parte de la migración, cada nueva regla de alerta se configura automáticamente con un grupo de acciones. El proceso de migración asigna un grupo de acciones predeterminado para cada regla. El grupo de acciones predeterminado se configura según la notificación de la regla antes de la migración:

  • Si la regla de detección inteligente tenía configurado el correo electrónico predeterminado o sin notificaciones, la nueva regla de alerta se configura con un grupo de acciones denominado Detección inteligente de Application Insights.

    • Si la herramienta de migración encuentra un grupo de acciones existente con ese nombre, vincula la nueva regla de alerta con ese grupo de acciones.
    • De lo contrario, crea un nuevo grupo de acciones con ese nombre. El nuevo grupo está configurado para las acciones de rol de Azure Resource Manager por correo electrónico y envía notificaciones a los usuarios con los roles Colaborador de supervisión de Azure Resource Manager y Lector de supervisión de Azure Resource Manager.
  • Si se cambió la notificación de correo electrónico predeterminada antes de la migración, el proceso de migración crea un grupo de acciones denominado Detección inteligente de Application Insights, con una acción de correo electrónico que envía notificaciones a las direcciones de correo electrónico configuradas anteriormente.

En lugar de usar el grupo de acciones predeterminado, puede seleccionar un grupo de acciones existente para configurar todas las nuevas reglas de alerta.

Ejecute el proceso de migración de detección inteligente

Use Azure Portal, la CLI de Azure o las plantillas de Azure Resource Manager (plantillas de ARM) para realizar la migración.

Migre su detección inteligente usando el portal de Azure

Para migrar la detección inteligente de su recurso:

  1. Seleccione Detección inteligente en el encabezado Investigar del recurso de Application Insights.

  2. Seleccione el banner que le pide migrar la detección inteligente a alertas (versión preliminar). Aparece el cuadro de diálogo de migración.

    Captura de pantalla que muestra el banner del feed de Smart Detection.

  3. Seleccione la opción Migre todos los recursos de Application Insights en esta suscripción. O bien, puede dejar desactivada la opción si desea migrar solo el recurso actual en el que se encuentra.

    Nota:

    Al seleccionar esta opción, se verán afectados todos los recursos de Application Insights existentes que aún no se han migrado. Mientras la migración a alertas esté en versión preliminar, se seguirán creando nuevos recursos de Application Insights con detección inteligente sin alertas.

  4. Seleccione el grupo de acciones que se va a configurar para las nuevas reglas de alerta. Puede elegir usar el grupo de acciones predeterminado (como se ha explicado) o uno de los grupos de acciones existentes.

  5. Seleccione Migrar para iniciar el proceso de migración.

    Captura de pantalla que muestra el cuadro de diálogo de migración de Detección inteligente.

Después de la migración, se crean nuevas reglas de alertas para el recurso de Application Insights, como se ha explicado.

Migración de detección inteligente mediante la CLI de Azure

Inicie la migración de detección inteligente mediante el siguiente comando de la CLI de Azure. El comando desencadena el proceso de migración preconfigurado, como se ha descrito anteriormente.

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

Para migrar un único recurso de Application Insights, body.txt debe incluir:

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

Para migrar todos los recursos de Application Insights en una suscripción, body.txt debe incluir:

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

El parámetro ActionGroupCreationPolicy selecciona la política para migrar la configuración del correo electrónico de las reglas de detección inteligente a los grupos de acciones. Los valores permitidos son:

  • Automático: usa los grupos de acciones predeterminados, como se describe en este documento.
  • Personalizado: crea todas las reglas de alerta con el grupo de acciones especificado en customActionGroupName.
  • <blank>: si no se especifica ActionGroupCreationPolicy, se usa la directiva Auto.

Migración de la detección inteligente mediante plantillas de ARM

Puede desencadenar la migración de detección inteligente a alertas para un recurso específico de Application Insights mediante plantillas de ARM. Para usar este método, necesita:

  • Crear una regla de alerta de detección inteligente para cada uno de los detectores admitidos.
  • Modificar las propiedades de Application Insights para indicar que se ha completado la migración.

Con este método, puede controlar qué reglas de alerta crear, definir su propio nombre y descripción de las reglas de alertas, y seleccionar cualquier grupo de acciones que quiera para cada regla.

Use las siguientes plantillas para este fin. Edítelas según sea necesario para proporcionar el id. de suscripción y el nombre del recurso de 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/smartdetectoralert",
			"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/smartdetectoralert",
			"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'),'/migrationToAlertCompleted')]",
			"type": "Microsoft.Insights/components/ProactiveDetectionConfigs",
			"location": "[resourceGroup().location]",
			"apiVersion": "2018-05-01-preview",
			"properties": {
				"name": "migrationToAlertCompleted",
				"sendEmailsToSubscriptionOwners": false,
				"customEmails": [],
				"enabled": true
			},
			"dependsOn": [
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralert', variables('requestPerformanceDegradationDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralert', variables('dependencyPerformanceDegradationDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralert', variables('traceSeverityDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralert', variables('exceptionVolumeChangedDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralert', variables('memoryLeakRuleName'))]"
			]
		}
	]
}

Visualización de las alertas después de la migración

Después de la migración, puede ver las alertas de detección inteligente. Para hacerlo, seleccione la entrada Alertas del recurso de Application Insights. En Tipo de señal, seleccione Detector inteligente para filtrar y presentar solo las alertas de detección inteligente. Puede seleccionar una alerta para ver los detalles de la detección.

Captura de pantalla que muestra las alertas de detección inteligente.

También puede seguir viendo las detecciones disponibles en el canal de Detección inteligente de su recurso de Application Insights.

Captura de pantalla que muestra la fuente de detección inteligente.

Administración de la configuración de alertas de detección inteligente después de la migración

Use Azure Portal o las plantillas de ARM para administrar la configuración de reglas de alertas de detección inteligente después de la migración.

Administración de la configuración de las reglas de alertas mediante Azure Portal

Después de que la migración finalice, acceda a las nuevas reglas de alertas de detección inteligente de forma similar a las otras reglas de alertas definidas para el recurso.

  1. Seleccione Alertas en el encabezado Supervisión en el recurso de Application Insights.

    Captura de pantalla que muestra el menú Alertas.

  2. Selección de Reglas de alerta.

    Captura de pantalla que muestra

  3. En Tipo de señal, seleccione Detector inteligente para filtrar y presentar las reglas de alerta de detección inteligente.

    Captura de pantalla que muestra las reglas de detección inteligente.

Habilitación o deshabilitación de reglas de alertas de detección inteligente

Habilite o deshabilite las reglas de alertas de detección inteligente a través de la interfaz de usuario del portal o mediante programación, como cualquier otra regla de alerta.

Si deshabilita una regla de detección inteligente específica antes de la migración, la nueva regla de alertas también está deshabilitada.

Configuración de grupos de acciones para las reglas de alertas

Cree y administre grupos de acciones para las nuevas reglas de alertas de detección inteligente, como para cualquier otra regla de alerta de Azure Monitor.

Administración de la configuración de reglas de alertas mediante plantillas de ARM

Una vez finalizada la migración, use plantillas de ARM para configurar las opciones de la regla de alertas de detección inteligente.

Nota:

Una vez finalizada la migración, debe configurar las opciones de detección inteligente mediante plantillas de reglas de alertas de detección inteligente. Ya no puede configurarlos mediante la plantilla de Resource Manager de Application Insights.

En este ejemplo de plantilla de ARM, se muestra cómo configurar una regla de alerta Response Latency Degradation en un estado Enabled con una gravedad de Sev2. Los valores válidos severity son Sev0, Sev1, Sev2, Sev3y Sev4.

  • La detección inteligente es un servicio global, por lo que la ubicación de la regla se crea en la ubicación global.

  • La propiedad id debe cambiar según el detector específico configurado. El valor tiene que ser uno de los siguientes:

    • 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": "Sev2",
                  "frequency": "PT24H",
                  "detector": {
                  "id": "RequestPerformanceDegradationDetector"
                  },
                  "scope": ["/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyResourceGroup/providers/microsoft.insights/components/my-app"],
                  "actionGroups": {
                        "groupIds": ["/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/MyResourceGroup/providers/microsoft.insights/actiongroups/MyActionGroup"]
                  }
            }
        }
    ]
}

Pasos siguientes