Modèle de seuil

Une règle de seuil est définie par le modèle de seuil. Elle collecte un groupe d'événements sélectionnés au cours d'un intervalle de temps et détermine, une fois que chaque événement a été reçu, si une condition de seuil est remplie. Il s'agit d'une règle avec état.

Présentation

Le modèle de seuil collecte les événements au cours d'un intervalle de temps, jusqu'à ce qu'une valeur de seuil soit atteinte. La période est indiquée par une plage temporelle obligatoire, telle que définie par l'élément <timeWindow> dans le langage de règle.

Le modèle de seuil fournit les trois options suivantes pour un type de seuil :
seuil de comptage d'événement
Grâce à ce type de seuil, vous pouvez définir le nombre d'événements devant répondre aux critères de sélection au cours d'une période donnée. La valeur de seuil définie est comparée au nombre d'événements qui ont été acceptés. Lorsque le comptage d'événements est égal à la limite définie au cours de la plage temporelle, le seuil est atteint.

Ce type de seuil peut être utile pour une vérification très simple du comptage d'événements. Il peut, par exemple, répondre à la question suivante : "Cinq événements d'échec de connexion se sont-ils produits dans la même minute ?"

Ce seuil est défini par l'élément <eventCountThreshold>. L'élément <eventCountThreshold> spécifie également l'un des deux modes d'intervalle de temps possibles suivants pour la plage temporelle :
intervalle fixe
Un intervalle fixe commence à la réception du premier événement qui répond aux critères de sélection, et s'achève dans l'un des cas suivants :
  • La règle atteint son seuil au cours de la durée spécifiée.
  • La durée spécifiée s'est écoulée.
intervalle glissant
Un intervalle glissant commence à la réception du premier événement qui correspond aux critères de sélection. Cependant, si la règle n'a pas atteint son seuil après écoulement de la durée spécifiée, la plage temporelle réajuste l'heure de début pour la faire glisser jusqu'à l'heure de réception d'un nouveau "premier" événement, qui est généralement l'événement accepté suivant. L'intervalle glissant poursuit ce réajustement jusqu'à que l'une des situations suivantes se produisent :
  • La règle atteint son seuil au cours de la durée spécifiée.
  • L'événement qui démarre la plage temporelle n'est suivi d'aucun autre événement au cours de la durée spécifiée.
L'événement qui démarre la plage temporelle (et devient le nouveau "premier" événement) est l'événement qui répond à ce critère : son heure de réception, ajoutée à la durée de l'intervalle de temps définie pour la règle, est supérieure à l'heure en cours. Nous obtenons l'équation suivante :
event reception time + time interval duration for rule > current time
S'il n'existe aucun événement de ce type, l'intervalle glissant ne peut plus réajuster l'heure de début et s'achève.
seuil calculé
Grâce à ce type de seuil, vous pouvez rédiger du code (ou utiliser du code écrit par quelqu'un d'autre) qui réalise un calcul sur chaque événement accepté et renvoie une valeur de seuil calculée qui est conservée dans une variable préalablement définie. Cette valeur de seuil calculée est ensuite comparée à une valeur de seuil définie afin d'établir si le seuil a été atteint.

Un calcul complexe peut donc être mis en oeuvre afin de créer (ou mettre à jour) une valeur de seuil calculée, éventuellement à l'aide de données sauvegardées à partir d'événements précédents, et le rédacteur de la règle peut définir la valeur de seuil définie indépendamment de la logique qui calcule la valeur de seuil calculée.

Ce type de seuil peut être utile pour le regroupement et la comparaison d'une valeur par rapport à une valeur de seuil définie. Il peut par exemple permettre de calculer les ventes totales (exprimées en euros) réalisées auprès d'un client donné sur une période donnée, pour ensuite comparer cette somme à une valeur de seuil définie.

Ce seuil est défini par l'élément <computedThreshold>.

seuil booléen
Grâce à ce type de seuil, vous pouvez rédiger du code (ou utiliser du code écrit par quelqu'un d'autre) qui renvoie une valeur true ou false pour chaque événement accepté. Si cette valeur est true, le seuil est atteint. Si cette valeur est false, la règle de seuil continue ses opérations de traitement jusqu'à l'expiration de la plage temporelle ou jusqu'à ce qu'elle accepte un autre événement.

Ce type de seuil peut permettre de vérifier une plage de valeurs. Par exemple, si l'utilisation de l'unité centrale doit se situer entre 30 % et 80 % à tout moment, ce seuil peut vérifier en permanence que l'utilisation demeure dans cette plage.

Ce seuil est défini par l'élément <booleanThreshold>.

Conditions d'exécution de la réponse à la règle

Avec le modèle de seuil, la réponse à la règle s'exécute aux moments suivants :
  • Lorsque le seuil a été atteint, tel que défini par l'élément <onDetection>.
  • Lorsqu'un ou plusieurs événements sont acceptés mais que le seuil n'est pas atteint au cours de la plage temporelle, telle que définie par l'élément <onTimeOut>.

Exemple d'utilisation de ce modèle de règle

Une règle qui effectuerait les opérations suivantes constitue un bon exemple d'utilisation du modèle de seuil avec le seuil de comptage d'événement :
Si plus de quatre (4) événements Server unreachable (serveur introuvable) sont émis par le même sous-réseau au cours d'un intervalle de temps glissant de 30 secondes, la règle exécute une vérification de l'état d'un routeur.
Référence associée
Récapitulatif relatif à la règle de seuil