Introducción a las alertas de métricas basadas en consultas (versión preliminar)

Puede crear una regla de alerta de métricas en métricas de Prometheus o personalizadas (OTel) almacenadas en Azure Monitor Workspace, con una condición de alerta de métricas basada en consulta mediante PromQL.

En este artículo se proporciona información general sobre las alertas de métricas basadas en consultas en Azure Monitor, centrándose en cómo usar PromQL para crear reglas de alerta en las métricas de Prometheus o personalizadas (OTel) almacenadas en un área de trabajo de Azure Monitor.

¿Qué es PromQL?

PromQL es un lenguaje de consulta de métricas basado en código abierto con:

  • Un conjunto de funciones y operadores de métricas para la selección, agregación y transformación de datos.
  • Manipulación, evaluación y alertas multidimensionales nativas, incluyendo filtrado, agregación y reetiquetado de dimensiones.
  • Condiciones compuestas, incluidas las de anidamiento.
  • Combinación y comparación de varias métricas
  • Reutilización de expresiones de alerta de PromQL de la comunidad o de sistemas de supervisión basados en Prometheus existentes.

Capabilities

  • Ámbitos de regla centrados en recursos y en espacios de trabajo.

    • Las reglas centradas en recursos aplican consultas a métricas de recursos específicos de Azure, como Azure Kubernetes Services (AKS) o máquinas virtuales, con granularidad de RBAC al requerir acceso solo al recurso supervisado.
    • Las reglas centradas en el área de trabajo permiten a los usuarios autorizados consultar cualquier métrica emitida en el área de trabajo por cualquier recurso, incluidas las consultas entre recursos.
  • Umbrales dinámicos. Las reglas de alerta que usan umbrales dinámicos pueden detectar y alertar sobre un comportamiento anómalo de un valor de expresión PromQL. La regla de alerta aprovecha las funcionalidades avanzadas de aprendizaje automático (ML) para analizar el comportamiento histórico de la expresión y calcula automáticamente los umbrales más adecuados en un momento dado, para determinar si una alerta debe activarse o no.

  • Autorización basada en identidad administrada. Puede autorizar el acceso a las áreas de trabajo mediante Azure Managed Identity. Managed Identity proporciona acceso seguro y administrado por Azure a los recursos, lo que mejora la granularidad de RBAC separando los derechos de acceso de usuario y regla. Las alertas de métricas admiten identidades asignadas por el usuario y asignadas por el sistema.

  • Personalización de alertas de despidon. Puede personalizar las alertas de métricas basadas en consultas para incluir información más contextual y específica del escenario.

Nota:

Tanto el asunto de correo electrónico personalizado como las propiedades personalizadas admiten la inserción dinámica de propiedades desde la carga de alerta.

Alertas de métricas basadas en consultas en comparación con los grupos de reglas de Prometheus

Las alertas de métricas basadas en consultas son una alternativa a las alertas en grupos de reglas de Prometheus.

Ventajas del uso de alertas de métricas basadas en consultas:

  • Las reglas de alerta se configuran y administran como recursos individuales de Azure. No es necesario crear y administrar grupos de reglas sobre las reglas individuales.

  • Compatibilidad con consultas centradas en recursos y RBAC: los usuarios no necesitan derechos de acceso a su área de trabajo.

  • Compatibilidad con umbrales dinámicos en los criterios de la regla de alertas.

  • Compatibilidad con la autenticación y autorización mediante Azure Managed Identity.

  • Compatibilidad con la personalización del asunto del correo electrónico.

Diferencias en el uso de reglas de alertas de métricas basadas en consultas frente a grupos de reglas de Prometheus

  • Limitación del ámbito. En los grupos de reglas de Prometheus, puede limitar el ámbito de las reglas a un único clúster de AKS o ARC mediante la clusterName propiedad . Con las reglas de alertas de métricas basadas en consultas, la limitación del ámbito a un único clúster (o cualquier otro recurso) se realiza estableciendo la regla scope en un recurso específico.
  • Condición de regla. La propiedad de la regla de alerta de métricas query es completamente equivalente a la propiedad de grupos de reglas de Prometheus expression y generaría los mismos resultados. La propiedad for funciona de la misma manera en ambos servicios.
  • Manejo de etiquetas de métricas. Las alertas de métricas basadas en consultas admiten completamente el control y la manipulación de etiquetas en las métricas de Prometheus y OTel según el estándar PromQL. Sin embargo, cuando se desencadena una alerta, las etiquetas de métrica restantes y sus valores aparecen en la carga como dimensions, siguiendo la terminología usada en otras alertas de Azure y experiencias de Azure Monitor.
  • Metadatos e información personalizados. Puede definir etiquetas y anotaciones personalizadas para agregar metadatos dinámicos, texto informativo, vínculos a guías de ejecución y mucho más a la carga útil de la alerta en las reglas de alerta del grupo de reglas de Prometheus. En las alertas de métricas basadas en consultas, se proporciona una funcionalidad similar a través de propiedades personalizadas.

Identidades administradas para alertas basadas en consultas

Debe usar Identidades administradas de Azure para las reglas de alertas de métricas basadas en consultas.

La identidad administrada debe tener un rol de Lector de supervisión (o un rol personalizado con permisos equivalentes) en el recurso del ámbito o AMW.

Se admiten tanto los tipos MI asignados por el usuario como los asignados por el sistema.

Esquema y propiedades

En la tabla siguiente se proporciona una explicación del esquema y las propiedades de una regla de alerta de métrica basada en consultas.

Nombre Obligatorio Tipo Description Notas
nombre Cierto cuerda / cadena Nombre de la regla de alertas
location Cierto cuerda / cadena Ubicación de los recursos Desde regiones admitidas en la versión preliminar
tipo_de_identidad Cierto cuerda / cadena Tipo de identidad administrada AsignadoPorUsuario o AsignadoPorSistema
identity.userAssignedIdentities Cierto cuerda / cadena Identificador de recurso de identidad administrada asignada por el usuario Necesario si el tipo es UserAssigned
properties.enabled Falso boolean Habilitación/deshabilitación de reglas El valor predeterminado es true
propiedades.descripcion Falso cuerda / cadena Descripción de la regla de alertas
properties.severity Falso entero Gravedad de la alerta 0-4, el valor predeterminado es 3 (informativo)
properties.targetResourceType (tipo de recurso objetivo) Falso cuerda / cadena Tipo de recurso de destino de alerta
properties.scopes Cierto string[] Identificador de recurso de Azure Identificador de recurso de AMW (para una regla centrada en el área de trabajo) u otro identificador de recurso de Azure, identificador de grupo de recursos o identificador de suscripción (para una regla centrada en recursos). Actualmente solo se admite un único elemento de ámbito.
properties.evaluationFrequency Cierto cuerda / cadena Intervalo de evaluación de reglas Equivalente al intervalo de Prometheus.
properties.criteria.allOf[].name Cierto cuerda / cadena Nombre de condición
properties.criteria.allOf[].query Cierto cuerda / cadena Consulta de regla de alerta Consulta PromQL, equivalente a la expresión de regla de alerta de Prometheus
properties.criteria.allOf[].criterionType Falso cuerda / cadena Tipo de condición StaticThresholdCriterion (predeterminado) o DynamicThresholdCriterion
properties.criteria.allOf[].operator Falso cuerda / cadena Tipo de condición GreaterThan (valor predeterminado), LessThan, GreaterOrLessThan
properties.criteria.allOf[].alertSensitivity Falso cuerda / cadena Tipo de condición Medio (valor predeterminado), Alto, Bajo
properties.criteria.failingPeriods.for Falso cuerda / cadena Duración durante la cual la condición debe permanecer verdadera antes de activar la alerta Equivalente a la regla de alerta de Prometheus "for". Valores: 'PT1M', 'PT5M', etc. El valor predeterminado es 0 (activar inmediatamente)
properties.resolveConfigurations.autoResolved Falso boolean Resolución automática de alertas habilitada El valor predeterminado es true
properties.resolveConfigurations.timeToResolve Falso cuerda / cadena Tiempo de espera de resolución automática de alertas Valor predeterminado = "PT5M"
properties.actions[].actionGroupId false cuerda / cadena lista de ID de grupo de acciones el conjunto de grupos de acción que se ejecutan cuando se activa o se resuelve una alerta
properties.actionProperties.EmailSubject false cuerda / cadena plantilla para asunto de correo electrónico personalizado
properties.customProperties false cuerda / cadena pares clave-valor para las propiedades personalizadas de las alertas

Regiones soportadas

  • East US
  • West Europe
  • Este de EE. UU. 2
  • Norte de Europa
  • Central US
  • Oeste de EE. UU. 2
  • UK South
  • Sudeste Asiático
  • Centro de la India
  • West US
  • Centro-oeste de Alemania
  • Japón Oriental
  • Canada Central
  • Centro-sur de EE. UU.
  • Este de Asia
  • Australia East
  • Centro de Suecia
  • Norte de Suiza
  • Centro de Francia
  • Norte de Emiratos Árabes Unidos
  • Norway East
  • Centro de Corea del Sur
  • Sur de Brasil
  • Oeste de EE. UU. 3
  • Australia Southeast
  • Norte de Sudáfrica

Pasos siguientes