Comportamiento de alertas

Las políticas de alertas existen en entornos dinámicos y complejos, por lo que usarlas bien requiere la comprensión de algunas de las variables que pueden afectar su comportamiento. Las métricas y los recursos que las condiciones supervisan, las ventanas de duración para las condiciones y los canales de notificación pueden tener un efecto.

En este documento, se proporciona información adicional para ayudarte a comprender el comportamiento de tus políticas de alertas basadas en métricas. Este contenido no se aplica a las políticas de alertas basadas en registros. Para obtener información sobre las políticas de alertas basadas en registros, consulta Supervisa tus registros.

El período de alineación y la duración

El período de alineación y el período de duración son dos campos que estableces cuando especificas una condición para una política de alertas. En esta sección, se proporciona una breve ilustración del significado de estos campos.

Período de alineación

El período de alineación es un intervalo retrospectivo de un punto en el tiempo específico. Por ejemplo, si el período de alineación es de cinco minutos, luego, a las 1:00 p.m., el período de alineación contiene las muestras recibidas entre las 12:55 p.m. y la 1:00 p.m. A la 1:01 p.m., el período de alineación se desliza un minuto y contiene las muestras recibidas entre las 12:56 p.m. y la 1:01 p.m.

Para ilustrar el efecto del período de alineación en una condición en una política de alertas, considera una condición que supervisa una métrica con un período de muestra de un minuto. Supongamos que el período de alineación se establece en cinco minutos y que el alineador está configurado como sum. Por último, supongamos que la condición se cumple cuando el valor alineado de la serie temporal es mayor que dos durante una duración de 3 minutos y que la condición se evalúa cada minuto.

En la siguiente figura, se ilustran varias evaluaciones secuenciales de la condición:

Figura que ilustra el efecto del período de alineación.

Cada fila de la figura ilustra una sola evaluación de la condición. Se muestran los datos de series temporales. Los puntos en el período de alineación se muestran con puntos azules, todos los puntos anteriores son grises. Cada fila muestra el valor alineado y si este valor supera el umbral de dos. Para la fila etiquetada start, el valor alineado a 1 se encuentra debajo del umbral. En la siguiente evaluación, la suma de las muestras en el período de alineación es 2. En la tercera evaluación, la suma es 3 y es mayor que el umbral. El evaluador de condiciones también inicia el temporizador del período de duración.

Período de duración

Usa la duración o el período de duración para evitar que se cumpla una condición debido a una sola medición. En Google Cloud Console, usa los siguientes campos para configurar la duración:

  • Interfaz heredada: el campo Para del panel Configuración de la política de alertas
  • Interfaz de vista previa: El campo Tiempo por encima del umbral (o Tiempo por debajo del umbral) del paso Configurar el activador.

En la figura anterior, se ilustran tres evaluaciones de la condición. En el momento, start + 2m, el valor alineado era superior al umbral. Sin embargo, la condición no se cumple porque el período de duración se establece en tres minutos. En la siguiente figura, se ilustran los resultados para las siguientes evaluaciones de la condición:

Figura que ilustra el efecto de la ventana de duración.

Como se ilustra, a pesar de que el valor alineado está por encima del umbral en el momento start + 2m, la condición no se cumple hasta que el valor alineado esté por encima del umbral durante tres minutos. Eso ocurre en el momento start + 5m.

Como aclaración, el ejemplo anterior omitió la posibilidad de combinar los datos alineados de varias series temporales en una sola medición. Es la medida que se compara con el umbral para determinar si se cumple la condición.

Una condición restablece su ventana de duración cada vez que una medición no satisface la condición. Este comportamiento se muestra en el siguiente ejemplo:

Ejemplo: Esta política especifica un período de cinco minutos.

Si la latencia de respuesta HTTP es superior a dos segundos,
y si la latencia supera ese umbral durante cinco minutos,
abre un incidente y envía un correo electrónico al equipo de asistencia al cliente.

La siguiente secuencia ilustra la forma en la que el período de duración afecta la evaluación de la condición:

  1. La latencia de HTTP es inferior a dos segundos.
  2. Durante los próximos tres minutos consecutivos, la latencia de HTTP es mayor que dos segundos.
  3. En la siguiente medida, la latencia es inferior a dos segundos, por lo que la condición restablece la ventana de duración.
  4. Durante los siguientes cinco minutos consecutivos, la latencia de HTTP es mayor que dos segundos, por lo que se cumple la condición y se activa la política.

Establece el período de duración para que sea lo suficientemente extenso como para minimizar los falsos positivos, pero lo suficientemente cortos para garantizar que los incidentes se abran de manera oportuna.

Selecciona el período de alineación y el período de duración

Las condiciones de la política de alertas se evalúan con una frecuencia fija. Las elecciones que tomas para el período de alineación y el período de duración no afectan la frecuencia con la que se evalúa la condición.

En la figura, se ilustra que el período de alineación determina cuántas muestras de datos se combinan con el alineador. Si eliges un período prolongado, se combinarán varias muestras. Si eliges un período corto, es posible que solo haya un dato en el intervalo. Por el contrario, el período de duración especifica la cantidad de tiempo que los valores alineados deben superar el umbral antes de que se cumpla la condición. Si el período de duración se establece en 0, un solo valor alineado que esté por encima del umbral significa que se cumple la condición.

Políticas con varias condiciones

Una política de alertas puede contener hasta 6 condiciones.

Si usas la API de Cloud Monitoring o si tu política de alertas tiene varias condiciones, debes especificar cuándo se cumplen las condiciones individuales. Cuando se cumple una condición, se crea un evento y, posiblemente, se abre un incidente. Para configurar cómo se combinan varias condiciones, realiza una de las siguientes acciones:

  • En Google Cloud Console, usa una de las siguientes opciones:

    • Interfaz heredada: campo Activadores de políticas
    • Interfaz de vista previa: paso Activador de varias condiciones.
  • En la API de Cloud Monitoring, usa el campo combiner.

En esta tabla, se enumeran los parámetros de configuración de Cloud Console, el valor equivalente en la API de Cloud Monitoring y una descripción de cada configuración:

Cloud Console
Valor de activadores de política
API de Cloud Monitoring
Valor del combinador
Significado
: Se cumple cualquier condición OR Se abre un incidente si algún recurso hace que se cumpla alguna de las condiciones.
Se cumplen todas las condiciones
incluso para diferentes recursos
de cada condición

(predeterminado)
AND Se abre un incidente si al menos un recurso cumple cada condición, incluso si un recurso diferente hace que se cumplan esas condiciones.
Se cumplen todas las condiciones AND_WITH_MATCHING_RESOURCE Se abre un incidente si el mismo recurso hace que se cumpla cada condición. Esta configuración es la opción de combinación más estricta.

En este contexto, el término cumplir significa que la configuración de la condición se evalúa como true. Por ejemplo, si la configuración es Any time series is above 10 for 5 minutes, cuando esta declaración se evalúa como true, se cumple la condición.

Ejemplo

Supongamos que tienes un proyecto de Google Cloud que contiene dos instancias de VM, vm1 y vm2. Además, supongamos que creas una política de alertas con 2 condiciones:

  • La condición llamada CPU usage is too high supervisa el uso de CPU de las instancias. Esta condición se cumple cuando el uso de CPU de cualquier instancia supera los 100 ms/s durante 1 minuto.
  • La condición denominada Excessive utilization supervisa el uso de CPU de las instancias. Esta condición se cumple cuando el uso de CPU de cualquier instancia supera el 60% durante 1 minuto.

En un principio, supongamos que ambas condiciones se evalúan como false.

A continuación, supongamos que el uso de CPU de vm1 supera los 100 ms/s durante 1 minuto. Esto hace que se cumpla la condición CPU usage is too high. Si las condiciones se combinan con Se cumple cualquier condición, se crea un incidente, ya que se cumple una condición. Si las condiciones se combinan con Se cumplen todas las condiciones o Se cumplen todas las condiciones incluso con recursos diferentes para cada condición, no se crea un incidente. Estas opciones de combinador requieren que se cumplan ambas condiciones.

A continuación, supongamos que el uso de CPU de vm1 continúa por encima de los 100 ms/s y que el uso de CPU de vm2 supera el 60% durante 1 minuto. Como resultado, se cumplen ambas condiciones. A continuación, se describe lo que ocurre según cómo se combinan las condiciones:

  • Se cumple cualquier condición: se crea un incidente cuando el recurso hace que se cumple una condición. En este ejemplo, la vm2 hace que se cumpla la condición Excessive utilization.

    Como nota al margen, si la vm2 hizo que se cumpla la condición CPU usage is too high, también se crea un incidente. Esto se debe a que la vm1 hace que se cumpla la condición CPU usage is too high y la vm2 hace que la condición CPU usage is too high se cumpla en eventos distintos.

  • Todas las condiciones se cumplen incluso en recursos diferentes de cada condición: Se crea un incidente porque se cumplen ambas condiciones.

  • Todas las condiciones se cumplen: Un incidente no se crea porque este combinador requiere que el mismo recurso haga que se cumplan todas las condiciones. En este ejemplo, no se crea ningún incidente porque la vm1 hace que se cumpla CPU usage is too high, mientras que la vm2 hace que se cumpla Excessive utilization.

Políticas de alertas inhabilitadas

Las políticas de alertas se pueden pausar y reiniciar temporalmente si inhabilitas y habilitas la política. Por ejemplo, si tienes una política de alertas que te notifica cuando un proceso está inactivo durante más de 5 minutos, puedes inhabilitar la política de alertas cuando desactives el proceso para realizar una actualización o cualquier otro tipo de mantenimiento.

Inhabilitar una política de alertas evita que la política active o cierre los incidentes, pero no evita que Cloud Monitoring evalúe las condiciones de la política y registre los resultados. Si inhabilitas una política de alertas y deseas que los problemas abiertos pasen al estado cerrado, silencia el incidente. Para obtener información sobre ese proceso, consulta Silencia incidentes.

Supongamos que el proceso supervisado está inactivo durante 20 minutos por mantenimiento. Si reinicias el proceso y vuelves a habilitar la política de alertas de inmediato, reconoce que el proceso no se inició en los últimos 5 minutos y abre un incidente.

Cuando una política inhabilitada se vuelve a habilitar, Monitoring analiza los valores de todas las condiciones en el período de duración más reciente, que puede incluir datos que se tomaron antes y después del intervalo de pausa, o durante este. Las políticas pueden activarse de inmediato después de reanudarlas, incluso con ventanas de larga duración.

Datos parciales de la métrica

Si faltan mediciones (por ejemplo, si no hay solicitudes HTTP durante un par de minutos), la política usa el valor registrado más reciente para evaluar las condiciones.

Ejemplo

  1. Una condición especifica la latencia de HTTP de dos segundos o más durante cinco minutos consecutivos.
  2. Durante tres minutos consecutivos, la latencia de HTTP es de tres segundos.
  3. Durante dos minutos consecutivos, no hay solicitudes HTTP. En este caso, una condición traslada la última medición (tres segundos) durante estos dos minutos.
  4. La política se activa después de cinco minutos en total, aunque no haya habido datos durante los últimos dos minutos.

Los datos de la métrica que falten o se retrasen pueden provocar que las políticas no generen alertas y que los incidentes no se cierren. Los retrasos en los datos que llegan de proveedores de servicios en la nube de terceros pueden ser de hasta 30 minutos. Los retrasos más comunes son de 5 a 15 minutos. Un retraso prolongado, mayor que el período de duración, puede hacer que las condiciones entren en un estado "desconocido". Cuando finalmente lleguen los datos, es posible que Cloud Monitoring haya perdido parte del historial reciente de las condiciones. Es posible que la inspección posterior de los datos de series temporales no muestre este problema debido a que no hay evidencia de retrasos una vez que llegan los datos.

Puedes minimizar estos problemas si realizas alguna de estas acciones:

  • Comunícate con tu proveedor de servicios en la nube de terceros para ver si hay una manera de reducir la latencia de recopilación de métricas.
  • Usa ventanas de mayor duración en tus condiciones. Esto tiene la desventaja de hacer que tus políticas de alertas tengan menos capacidad de respuesta.
  • Elige métricas que tengan un retraso de recopilación menor:

    • Métricas del agente de supervisión, en especial cuando el agente se ejecuta en instancias de VM en servicios en la nube de terceros.
    • Métricas personalizadas, cuando escribes sus datos directamente en Cloud Monitoring.
    • Métricas basadas en registros, si la recopilación de registros no se demora.

Para obtener más información, consulta Descripción general del agente de Monitoring, Usa métricas personalizadas y Métricas basadas en registros.

Incidentes por política

Una política de alertas puede aplicarse a muchos recursos, y un problema que afecte a todos los recursos puede activar la política y los incidentes abiertos para cada recurso. Se abre un incidente por cada serie temporal que provoque que se cumpla una condición.

Para evitar sobrecargar el sistema, la cantidad de incidentes que una sola política puede abrir en simultáneo se limita a 5,000.

Por ejemplo, si una política se aplica a 2,000 (o 20,000) instancias de Compute Engine y cada instancia hace que se cumplan las condiciones de alerta, solo se abren 5,000 incidentes. Se ignoran las condiciones restantes que se cumplan hasta que se resuelvan algunos de los incidentes abiertos de esa política.

Notificaciones por incidente

De forma predeterminada, se envía una notificación cuando una serie temporal hace que se cumple una condición. Es posible que recibas varias notificaciones si se cumple alguna de las siguientes condiciones:

  • Una condición supervisa varias series temporales.

  • Una política contiene varias condiciones:

    • Se cumplen todas las condiciones: Cuando se cumplen todas las condiciones, para cada serie temporal que genere que se cumpla una condición, la política envía una notificación y crea un incidente. Por ejemplo, si tienes una política con dos condiciones y cada condición supervisa una serie temporal, cuando se active la política, recibirás dos notificaciones y verás dos incidentes.

    • Se cumple cualquier condición: La política envía una notificación cada vez que se cumple una combinación nueva de condiciones. Por ejemplo, supongamos que se cumple ConditionA, que se abre un incidente y que se envía una notificación. Si el incidente aún está abierto cuando una medición posterior cumple ConditionA y ConditionB, se envía otra notificación.

Si creas una política de alertas mediante la API de Cloud Monitoring, se te notificará cuando se cumpla la condición y cuando esta se deje de cumplir. Si creas la política mediante Google Cloud Console, el comportamiento predeterminado es enviar una notificación solo cuando se cumpla la condición. Si quieres recibir una notificación cuando se cumpla la condición, selecciona Notificar sobre el cierre del incidente en la sección de notificaciones.

Latencia de notificaciones

La latencia de notificaciones es el retraso desde el momento en el que un comience un problema hasta el momento en el que se active una política.

Los siguientes eventos y parámetros de configuración contribuyen a la latencia de notificaciones general:

  • Demora en la recopilación de métricas: El tiempo que Cloud Monitoring necesita para recopilar valores de métricas. En el caso de los valores de Google Cloud, esto suele ser insignificante. Para las métricas de AWS CloudWatch, esto puede significar varios minutos. Para las verificaciones de tiempo de actividad, puede ser un promedio de dos minutos (desde el final de la ventana de duración).

  • Período de duración: La ventana se configuró para la condición. Ten en cuenta que las condiciones solo se cumplen si una condición es verdadera en todo el período de duración. Por ejemplo, si especificas una ventana de cinco minutos, la notificación se retrasa al menos cinco minutos desde el momento en que se produce el evento.

  • Momento en el que llega la notificación: Los canales de notificación como el correo electrónico y los SMS pueden presentar latencias de red o de otros tipos (que no se relacionan con lo que se entrega), que a veces se aproximan a minutos. En algunos canales, como SMS y Slack, no hay garantía de que se entreguen los mensajes.

¿Qué sigue?