Políticas de alertas con MQL

Puedes crear políticas de alertas de Monitoring cuya condición incluya una consulta de MQL. Las consultas de MQL para las condiciones de alerta son como otras consultas MQL, excepto que también incluyen una operación de alerta de MQL.

En esta página, se presentan las operaciones de alerta 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 alertas.

Operaciones de alerta de MQL

Puedes crear políticas de alertas de umbral y ausencia con MQL.

Crea una política de alertas basada en MQL mediante una de las siguientes operaciones de alerta de MQL en tu consulta:

  • operación de condition para las alertas de umbral.
  • operación de absent_for para las alertas de ausencia.

Tu consulta debe terminar con una de estas operaciones. Para obtener información detallada, consulta la sección Alertas en la referencia de MQL.

La consulta no debe incluir una especificación explícita de intervalo de tiempo, es decir, una operación within.

Cuando usas MQL para crear una política de alertas, debes compilar una consulta MQL con fetch, filter, group_by, etc., a fin de identificar la serie temporal de destino. Esta parte de la consulta es la misma que una consulta que se usa a fin de recuperar datos de series temporales para un gráfico. Por ejemplo, la siguiente consulta recupera el uso de CPU para todas las instancias de VM de Compute Engine en cualquier región central de EE.UU.:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'

Esta consulta genera una tabla de salida. Para crear una alerta, canaliza la tabla de salida en una operación de alerta. La operación de alerta calcula los valores booleanos para los valores de datos en la tabla de salida que genera la consulta anterior a la operación de alerta.

La operación de alerta especifica una expresión para evaluar los datos en la tabla de entrada. Para una condición de umbral, la expresión prueba cada punto respecto de un umbral como “¿el valor es inferior a 0.5?”

El centro de alertas de Monitoring usa los resultados de la operación de alerta para determinar si se activó la política de alertas y cuándo. En Configuración de alertas, se describe cómo se toma la decisión.

Alertas de umbral

Para las alertas de umbral, usa la operación condition. La operación de condición toma una expresión que evalúa un valor según un umbral, como “el valor es superior al 15%” y muestra un valor booleano.

La operación condition requiere que la tabla de entrada esté alineada con una ventana de alineación explícita. Para alinear la tabla de entrada con una ventana explícita, especifica una ventana de alineación con unalign (por ejemplo, align delta_gauge(5m) o usa un valor temporalgroup_by con un período variable. En el siguiente ejemplo, se ilustra el uso de group_by con una operación sliding:

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

Debido a que la configuración predeterminada de la ventana group_by es variable, la expresión group_by en la consulta anterior es idéntica a group_by 5m, mean(val()).

La condición prueba cada dato en la tabla de entrada alineada para determinar si el valor de uso supera el umbral del 15%. 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 otra que contiene una copia de la columna de valor utilization de la tabla de entrada.

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.%.

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.

Para obtener más información sobre unidades en MQL, consulta Unidades de medida.

Alertas de ausencia

En el caso de las alertas de ausencia, usa la operación absent_for, que toma una duración para lo que deben faltar datos. Por ejemplo, en las siguientes pruebas para ver si faltan datos de las zonas centrales de EE.UU. durante ocho horas:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
| filter zone =~ 'us-central.*'
| 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 salida 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 con facilidad, como se muestra en el siguiente ejemplo:

    fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
    | filter zone =~ 'us-central.*'
    | value []
    | 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 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.

Cuando la consulta de alertas evalúa de forma continua a true durante el tiempo especificado para una serie temporal en particular, esa serie temporal se considera activa. Cuando la cantidad especificada de series temporales está activa, 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 alertas.

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.

Crea políticas de alertas de MQL (Console)

Para crear una política de alertas basada en MQL desde Google Cloud Console, sigue los pasos habituales a fin de crear la política, que se describe en Administra las políticas de alertas. Cuando crees la condición para la política de alertas, usa el Editor de consultas (Query Editor) en lugar del selector de métrica basado en formulario.

Editor de condiciones para políticas de alertas basadas en MQL.

Completa la condición de la siguiente manera:

  1. Asigna un nombre a tu condición. Para ello, ingresa un valor en el campo Condición sin título. Cuando se guarda, se le asigna a la condición un identificador numérico. Este nombre visible opcional puede proporcionar una descripción más significativa.

  2. Para iniciar tu condición de alerta, ingresa la consulta que selecciona los datos que deseas supervisar en el Editor de consultas. En la siguiente consulta, se recupera la serie temporal y se las alinea en una ventana de cinco minutos:

    fetch gce_instance
    | metric 'compute.googleapis.com/instance/cpu/utilization'
    | group_by 5m, mean(val())
    

    Si haces clic en Ejecutar consulta en este punto, verás un gráfico. Para un proyecto, la consulta produjo el siguiente resultado:

    Gráfico de una condición de alerta antes de especificarla

  3. Agrega una cláusula de alerta a la consulta mediante una de las siguientes operaciones:

    • El operador condition, para una alerta de umbral
    • El operador absent_for, para una alerta de ausencia

    Para obtener más información sobre estas operaciones de alerta, consulta Alertas en la referencia de MQL.

    En el siguiente ejemplo, se usa la operación condition para especificar un umbral:

    fetch gce_instance
    | metric 'compute.googleapis.com/instance/cpu/utilization'
    | group_by 5m, mean(val())
    | condition val() > .05
    

    Si haces clic en Ejecutar consulta en este punto, el gráfico agregará una línea de umbral para la condición, como se muestra en la siguiente captura de pantalla:

    Gráfico de una condición de alerta después de especificarla

  4. Si aún no ejecutaste su consulta, haz clic en Ejecutar consulta.

  5. En el panel Configuración, especifica cuándo se debe activar la política de alertas. Se deben especificar dos valores:

    • La condición se activa si te permite especificar cuántas series temporales que se muestran por la consulta deben satisfacer la operación de alerta antes de que la política de alertas se pueda activar. Puedes especificar los siguientes criterios:

      • Una serie temporal individual.
      • Una cantidad específica de series temporales.
      • Un porcentaje de series temporales
      • Todas las series temporales.
    • Por te permite especificar durante cuánto tiempo se debe cumplir la condición antes de que se active la política de alertas. Esto no es lo mismo que la ventana de alineación que se usa en la consulta MQL. Para obtener más información sobre la relación entre estos valores, consulta El período de alineación y la duración.

  6. Haz clic en Agregar para guardar la condición. Las consultas sobre las condiciones en las políticas de alertas no se convierten en formato estricto.

  7. Continúa con el resto de la configuración de la política de alertas.

Crea políticas de alertas de MQL (API)

Si usas la API, crea una condición del tipo MonitoringQueryLanguageCondition cuando configures la política. Si deseas obtener más información, consulta Crea condiciones para las políticas de alertas.

Luego, pasa la política a alertPolicies.create como de costumbre.