Patrón de umbral

Las reglas de umbral las define el patrón de umbral. Una regla de umbral recoge un grupo de sucesos seleccionados dentro de un intervalo de tiempo y determina, después de recibir cada suceso, si se ha cumplido una condición de umbral. Es una regla con estado.

Visión general

El patrón de umbral recoge sucesos durante un periodo de tiempo hasta que se llega al valor de umbral. El periodo de tiempo se indica por una ventana de tiempo obligatoria, según define el elemento <timeWindow> en el lenguaje de reglas.

El patrón de umbral proporciona las tres siguientes opciones de tipo de umbral:
umbral de recuento de sucesos
Con este tipo de umbral, usted puede definir el número de sucesos que deben cumplir los criterios de selección de sucesos en un periodo de tiempo determinado. El valor de umbral definido se compara con el número de sucesos que se han aceptado. Cuando el recuento de sucesos es igual al límite definido en la ventana de tiempo, se ha llegado al umbral.

Este tipo de umbral puede resultar útil para un recuento de sucesos muy sencillo. Por ejemplo, puede responder a la pregunta: "¿Han ocurrido 5 sucesos anómalos de inicio de sesión en 1 minuto?"

Este umbral se define por el elemento <eventCountThreshold>. El elemento <eventCountThreshold> también especifica una de las dos modalidades posibles de intervalo de tiempo para la ventana de tiempo:
intervalo fijo
Un intervalo fijo empieza cuando se recibe el primer suceso que cumple los criterios de selección de sucesos y termina cuando se da una de las siguientes situaciones:
  • La regla llega a su umbral dentro de la duración de tiempo especificada.
  • Termina la duración de tiempo especificada.
intervalo modificable
Un intervalo modificable empieza cuando se recibe el primer suceso que cumple los criterios de selección de sucesos. Sin embargo, si la regla no ha llegado a su umbral y ha terminado la duración de tiempo especificada, la ventana de tiempo ajusta (modifica) el tiempo de inicio al momento de recepción de un nuevo "primer" suceso, que es normalmente el siguiente suceso que se acepta. El intervalo modificable continúa ajustándose de esta forma hasta que se de una de las siguientes situaciones:
  • La regla llega a su umbral dentro de la duración de tiempo especificada.
  • Después de recibir el suceso que inicia la ventana de tiempo, no se recibe ningún otro suceso dentro de la duración de tiempo especificada.
El suceso que inicia la ventana de tiempo (y pasa a ser el nuevo "primer" suceso) es el suceso con una hora de recepción que cumple estos criterios: la hora de recepción más la duración del intervalo de tiempo para esa regla, es mayor que la hora actual. El mismo criterio en forma de ecuación sería:
hora de recepción del suceso + duración del intervalo de tiempo para la regla > hora actual
Cuando no existe tal suceso, el intervalo modificable no puede ajustar más el tiempo, así que termina.
umbral calculado
Con este tipo de umbral, puede escribir código (o utilizar código escrito por terceros) que realice un cálculo sobre cada suceso aceptado y devuelva un valor de umbral calculado que se guarde en una variable previamente definida. Este valor de umbral calculado se compara entonces con el valor de umbral definido para determinar si se ha llegado al umbral.

Por lo tanto, se puede aplicar un cálculo complejo para crear (o actualizar) un valor de umbral calculado, posiblemente utilizando datos guardados de sucesos anteriores, y el creador de reglas puede establecer el valor de umbral definido independientemente de la lógica que calcula el valor de umbral calculado.

Este tipo de umbral puede resultar útil para la agregación y comparación de un valor con el valor de umbral definido. Por ejemplo, se puede utilizar para calcular la suma de la cantidad de ventas en dólares a un cliente determinado durante un determinado periodo de tiempo y para comparar esa suma con un valor de umbral definido.

Este umbral se define por el elemento <computedThreshold>.

umbral booleano
Con este tipo de umbral, puede escribir código (o utilizar código escrito por terceros) que devuelva un valor true o false para cada suceso aceptado. Si el valor estrue, se ha llegado al umbral. Si el valor es false, la regla de umbral continúa procesándose hasta que se termina el periodo de tiempo o hasta que acepta otro suceso.

Este tipo de umbral puede resultar útil para comprobar un rango de valores. Por ejemplo, si la utilización de la CPU debe estar siempre entre un 30% y un 80%, este umbral puede verificar constantemente que la utilización se mantiene dentro de ese rango.

Este umbral se define por el elemento <booleanThreshold>.

Condiciones bajo las que se ejecuta la respuesta de la regla

Con el patrón de umbral, la respuesta de la regla se ejecuta en los siguientes momentos:
  • Cuando se ha llegado al umbral, según se define en el elemento <onDetection>.
  • Cuando se aceptan uno o más sucesos pero no se llega al umbral dentro de la ventana de tiempo, según se define en el elemento <onTimeOut>.

Ejemplo de utilización de este patrón de regla

Un ejemplo de utilización del patrón de umbral con el umbral de recuento de sucesos sería una regla que hiciera lo siguiente:
Si se originan más de 4 sucesos de tipo Server unreachable desde la misma subred dentro de un intervalo de tiempo modificable de 30 segundos, la regla ejecuta una acción para comprobar el estado de un direccionador.
Referencia relacionada
Resumen de la regla de umbral