Políticas de alertas con MQL

Puedes crear políticas de alertas de Monitoring cuya condición incluya una consulta en el lenguaje de consulta de Monitoring (MQL). Las consultas de MQL para las condiciones de la política de alertas son como otras consultas de MQL, excepto que también incluyen una operación de alerta de MQL. Si usas MQL en una condición, esa condición debe ser la única de la política.

En esta página, se presentan las operaciones de alertas de MQL y se describe cómo crear una política de alertas que las use. Para obtener información general sobre las políticas de alertas de Monitoring, consulta Comportamiento de las políticas de alertas basadas en métricas.

Comenzar

Todas las consultas de MQL comienzan con los siguientes componentes:

  • Una operación fetch, que recupera series temporales de Cloud Monitoring.
  • Un argumento, que consta de un recurso supervisado y un tipo de métrica, que identifica las series temporales que se deben recuperar.

Por ejemplo, la siguiente consulta recupera las series temporales escritas por instancias de Compute Engine para el tipo de métrica compute.googleapis.com/instance/cpu/utilization, que registra el uso de CPU de esas instancias:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization

El argumento del comando fetch consta de un gce_instance de tipo de recurso supervisado, un par de dos caracteres, ::, y un tipo de métrica, compute.googleapis.com/instance/cpu/utilization.

Para usar tu consulta en una política de alertas con una condición basada en MQL, la consulta debe terminar con una operación que defina los parámetros bajo los cuales Cloud Monitoring activa una alerta. La operación varía según si compilas una política de alertas sobre el umbral de métrica o una política de alertas de ausencia de métrica.

Consultas de MQL para políticas de alertas sobre el umbral de métricas

Las consultas de MQL con umbral de métrica requieren la operación condition, que evalúa una expresión booleana en cada punto dentro del tiempo de ejecución de la consulta. Si la expresión se evalúa como true para todos los puntos en el período de duración, Cloud Monitoring activa una alerta.

Por ejemplo, la siguiente consulta evalúa las instancias de VM de Compute Engine y activa una alerta si alguna instancia escribió más de 5 gigabytes en el disco durante las últimas 24 horas:

fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count
| group_by 24h, .sum
| every 30s
| condition val() > 5'GBy'

Puedes usar condiciones complejas para evaluar rangos de datos específicos. Por ejemplo, la siguiente condición activa una alerta si una instancia de VM durante las últimas 24 horas escribió más de cinco gigabytes y menos de seis gigabytes de datos o más de 8 gigabytes de datos:

fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count
| group_by 24h, .sum
| every 30s
| condition (val() > 5'GBy' && val() < 6'GBy') || val() > 8'GBy'

En el siguiente ejemplo, se usa filter, una operación group_by deslizante y una condición compleja para evaluar cada dato en una tabla de entrada alineada y determinar si el valor de uso supera el valor de umbral del 15%:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'
| group_by sliding(5m), mean(val())
| every 30s
| condition val() > .15 '10^2.%'

En la consulta anterior, la tabla resultante del operador condition tiene dos columnas de valores, una columna booleana que registra el resultado de la evaluación del umbral y una segunda que contiene una copia de la columna de valor utilization de la tabla de entrada. Debido a que la configuración predeterminada de la ventana group_by es variable, la expresión group_by es idéntica a group_by 5m, mean(val()).

El valor del uso de CPU se almacena como uso fraccionario, los valores varían de 0.0 a 1.0. El descriptor de métrica especifica la unidad de este valor como 10^2.%, que el gráfico muestra como un porcentaje. Las unidades del umbral deben ser compatibles, por lo que expresamos el umbral como .15 '10^2.%.

Consultas de MQL para políticas de alertas de ausencia de métricas

Las consultas de MQL de ausencia de métricas usan la operación absent_for, que tarda un período en el que deben faltar datos. Por ejemplo, la siguiente consulta prueba si faltan datos en las zonas centrales de EE.UU. durante ocho horas:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'
| every 30s
| absent_for 8h

La operación absent_for solo toma un argumento de duración, que indica por cuánto tiempo deben estar ausentes los datos para cumplir con la condición.

Los datos se consideran ausentes si aparecieron en el último período de 24 horas, pero no en el período, en este ejemplo, las ocho horas más recientes.

Una consulta absent_for crea una tabla de salida con valores alineados, mediante la alineación predeterminada o mediante una operación every después de la operación absent_for.

La tabla de resultados tiene dos columnas.

  • La primera es la columna active, que registra los resultados booleanos por ausencia de datos. Un valor true significa que hubo un punto de entrada dentro de las últimas 24 horas y ninguno en el período de duración.

  • La segunda columna es signal. Si la tabla de entrada tiene columnas de valores, la columna signal contiene el valor de la primera columna de valor del punto de entrada más reciente. Si la tabla de entrada no tiene columnas de valores, la columna signal contendrá la cantidad de minutos desde que se registró el último punto de entrada. Puedes forzar este caso, como se muestra en el siguiente ejemplo:

    fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
    | filter zone =~ 'us-central.*'
    | value []
    | every 30s
    | absent_for 8h
    

    En el ejemplo anterior, la operación value [] quita las columnas de valor de su tabla de entrada, por lo que la columna signal en la tabla que crea la operación absent_for contiene la cantidad de minutos desde que se registró el último punto de entrada.

Configuración de la política de alertas

Además de la consulta de MQL, una condición de política de alertas incluye otros dos valores:

  • La cantidad de series temporales de entrada que deben satisfacer la condición. El valor puede ser cualquiera de los siguientes:
    • Una serie temporal individual.
    • Una cantidad específica de series temporales.
    • Un porcentaje de series temporales.
    • Todas las series temporales.
  • Duración del estado de la alerta, es decir, cuanto tiempo la condición de alerta debe evaluar de forma continua a true.

Si la consulta se evalúa de forma continua como true durante la duración especificada para una serie temporal en particular, esa serie temporal se considera activa. Cuando se activa la cantidad especificada de series temporales, se activa la política de alertas y se genera una alerta para cada serie temporal activa. Para obtener más información sobre cómo se evalúan las políticas de alertas, consulta Comportamiento de las políticas de alertas basadas en métricas.

Cuando dejan de llegar datos de series temporales o cuando se retrasan, Monitoring clasifica los datos como faltantes. Si quieres obtener más información para configurar Monitoring a fin de evaluar las condiciones de umbral de métrica cuando dejan de llegar datos, consulta Datos parciales de métricas.

Si usas MQL en una condición, esa condición debe ser la única condición en la política. No se pueden usar varias condiciones en las políticas de alertas basadas en MQL.

Lineamientos

MQL te permite crear etiquetas definidas por el usuario y adjuntarlas a incidentes. Para ver ejemplos, consulta Agrega niveles de gravedad a una política de alertas.

Las unidades de los tipos de métricas se enumeran en la tabla relevante de tipos de métricas. Para el tipo de métrica compute.googleapis.com/instance/cpu/utilization, consulta la tabla compute.

¿Qué sigue?

Si quieres obtener información para usar la consola de Google Cloud y la API de Cloud Monitoring a fin de crear una política de alertas con una condición basada en MQL, consulta Crea alertas de MQL.

Si quieres obtener una lista de lineamientos y recomendaciones para configurar políticas de alertas eficaces con una condición basada en MQL, consulta Prácticas recomendadas para las alertas de MQL.

Si quieres obtener información para solucionar problemas habituales relacionados con las políticas de alertas con una condición basada en MQL, consulta Soluciona problemas de alertas de MQL.

Para ver ejemplos de políticas de alertas con una condición basada en MQL, consulta Casos de uso de alertas de MQL.