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 alertas
Con la migración, la detección inteligente ahora le permite aprovechar todas las funcionalidades de las alertas de Azure Monitor, entre las que se incluyen:
- Opciones de notificación enriquecidas para todos los detectores: Use los grupos de acciones para configurar varios tipos de notificaciones y acciones que se desencadenan cuando se activa una alerta. Puede configurar notificaciones por correo electrónico, SMS, llamada de voz o notificaciones push. Puede configurar acciones como llamar a 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 las reglas de acción para definir o suprimir acciones en cualquier ámbito de Azure Resource Manager, como suscripción, grupo de recursos o recurso de destino de Azure. 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 previas a 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 la dependencia: <nombre del recurso de Application Insights> |
Degradación en la relación de gravedad de seguimiento (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 ya no se admitirán para este recurso después de que se complete 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. 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. Se espera 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 seguirá 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. La migración puede asignar 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 se configura para las acciones Rol de Azure Resource Manager de correo electrónico y envía una notificación a los usuarios Colaborador de supervisión y Lector de supervisión de Azure Resource Manager.
Si la notificación por correo electrónico predeterminada se ha cambiado antes de la migración, se crea un grupo de acciones denominado Detección inteligente de Application Insights <n> 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, seleccione un grupo de acciones existente que se configurará para todas las nuevas reglas de alerta.
Ejecución del 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.
Migración de detección inteligente mediante Azure Portal
Para migrar la detección inteligente en el recurso:
Seleccione Detección inteligente en el encabezado Investigar del recurso de Application Insights.
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.
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. Siempre que 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.
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.
Seleccione Migrar para iniciar el proceso de migración.
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 directiva para migrar la configuración de 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 directivaAuto
.
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/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'))]"
]
}
]
}
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.
También puede ver las detecciones disponibles en la fuente de Detección inteligente del recurso de Application Insights.
Administración de la configuración de las reglas de alerta 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.
Seleccione Alertas en el encabezado Supervisión en el recurso de Application Insights.
Seleccione Administre las reglas de alertas.
En Tipo de señal, seleccione Detector inteligente para filtrar y presentar las reglas de alerta de detección inteligente.
Habilitación o deshabilitación de reglas de alertas de detección inteligente
Las reglas de alertas de detección inteligente se pueden habilitar o deshabilitar a través de la interfaz de usuario del portal o mediante programación, al igual que cualquier otra regla de alerta.
Si se ha deshabilitado una regla de detección inteligente específica antes de la migración, también se deshabilitará la nueva regla de alerta.
Configuración de grupos de acciones para las reglas de alertas
Puede crear y administrar 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
Después de completar la migración, puede usar plantillas de ARM para configurar los valores de las reglas de alertas de detección inteligente.
Nota
Después de que la migración finalice, la configuración de detección inteligente debe configurarse mediante plantillas de regla de alertas de detección inteligente. Ya no se pueden configurar 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 2
.
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": "2",
"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"]
}
}
}
]
}