Elément eventCountThreshold

L'élément <eventCountThreshold> est valide uniquement pour la règle de seuil. Il définit le nombre d'événements qui doivent répondre aux critères de sélection d'événement au cours d'une période donnée. L'élément <eventCountThreshold> spécifie également l'un des deux modes d'intervalle de temps disponibles pour la plage temporelle : fixe ou glissant.

Détails

Intervalle fixe (fixed)
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 (sliding )
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.
La règle de seuil compte tous les événements acceptés jusqu'à ce que le seuil soit atteint ou que la période indiquée s'achève. Ensuite, elle exécute les actions définies dans l'élément <onDetection> ou <onTimeOut>, selon le cas.
Actions <onDetection>
Ces actions s'exécutent lorsque le comptage d'événements est égal à la valeur définie dans l'attribut threshold de l'élément <eventCountThreshold>, indiquant que le seuil est atteint.
Actions <onTimeOut>
L'heure d'exécution de ces actions dépend du mode d'intervalle de temps, qui peut être fixe ou glissant.
Mode fixed (fixe)
En mode fixe, ces actions s'exécutent à l'expiration de la plage temporelle.
Mode sliding (glissant)
En mode glissant, ces actions s'exécutent si 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. En d'autres termes, aucun événement n'est reçu à une heure qui, ajoutée à la durée de l'intervalle de temps définie pour la règle, est supérieure à l'heure en cours.

Le mode d'intervalle de temps pour la plage temporelle est défini par l'attribut timeIntervalMode de l'élément <eventCountThreshold>. Le scénario suivant illustre le comportement des deux modes disponibles, ainsi que leurs différences.

Scénario illustrant les modes fixe et glissant

Supposons que la règle reçoive quatre événements correspondant aux critères de sélection, soit un à chacune de ces heures : 8h00, 8h04, 8h06 et 8h07. Le seuil de comptage d'événements est de 3 et la durée de la plage temporelle est fixée à 5 minutes.
Comportement de la règle en mode fixed (fixe)
Dans ce mode d'intervalle de temps, la règle de seuil commence le traitement à 8h00 et exécute les actions <onTimeOut> à 8h05, car elle ne reçoit que deux événements en 5 minutes. Par conséquent, elle n'atteint pas le seuil au cours de la plage temporelle spécifiée. Lorsqu'elle reçoit le troisième événement à 8h06, la règle de seuil commence le traitement de nouveau et exécute les actions <onTimeOut> à 8h11, car elle ne reçoit que deux événements en 5 minutes.

Le mode fixe est statique.

Comportement de la règle en mode sliding (glissant)
Dans ce mode d'intervalle de temps, la règle de seuil commence le traitement à 8h00. A 8h05, heure où la plage temporelle doit s'achever, la règle détecte n'avoir reçu que deux événements. Elle ignore alors l'événement reçu à 8h00 et recalcule la durée, afin qu'elle se termine à 8h09 (le premier événement étant désormais celui de 8h04). Lorsque la règle reçoit l'événement de 8h07, elle exécute les actions <onDetection>, car elle a désormais atteint son seuil (3 événements à 8h04, 8h06 et 8h07) au cours de la dernière plage temporelle (8h04 – 8h09).

Le mode glissant est dynamique, car il réajuste (fait glisser) continuellement l'heure de début, afin que la règle atteigne le seuil défini au cours de la plage temporelle.

Supposons maintenant que la règle reçoive quatre événements correspondant aux critères de sélection, soit un à chacune de ces heures : 8h00, 8h04, 8h06 et 8h10. Le seuil de comptage d'événements est de 3 et la durée de la plage temporelle est fixée à 5 minutes.
Comportement de la règle en mode sliding (glissant)
Dans ce cas, la règle de seuil commence le traitement à 8h00. A 8h05, heure où la plage temporelle doit s'achever, la règle détecte n'avoir reçu que deux événements. Elle ignore alors l'événement reçu à 8h00 et recalcule la durée, afin qu'elle se termine à 8h09 (le premier événement étant désormais celui de 8h04).

A 8h09, heure où la plage temporelle doit désormais s'achever, la règle détecte n'avoir reçu que deux événements. Elle ignore alors l'événement reçu à 8h04 et recalcule la durée, afin qu'elle se termine à 8h11 (le premier événement étant désormais celui de 8h06).

A 8h11, heure où la plage temporelle doit désormais s'achever, la règle détecte n'avoir reçu que deux événements. Elle ignore alors l'événement reçu à 8h06 et recalcule la durée, afin qu'elle se termine à 8h15 (le premier événement étant désormais celui de 8h10).

A 8h15, heure où la plage temporelle doit désormais s'achever, la règle détecte n'avoir reçu aucun événement depuis celui de 8h10, le premier de la plage. Elle exécute alors les actions <onTimeOut>.

Attributs

<eventCountThreshold> possède les attributs suivants :

Tableau 1. Attributs de l'élément <eventCountThreshold>
Nom Description Type de données Obligatoire ?
threshold Définit le nombre d'événements qui doivent répondre aux critères de sélection d'événement au cours d'une période donnée. Il s'agit du seuil de nombres d'événements à atteindre. Cette valeur doit être un entier positif. xsd:positiveInteger Oui
timeIntervalMode Définit si l'intervalle de temps pour la plage temporelle est fixe ou glissant. Les valeurs correctes pour cet attribut sont :
  • fixed (valeur par défaut)
  • sliding
xsd:string Non

Contenu dans

<eventCountThreshold> est contenu dans l'élément suivant :

Contient

<eventCountThreshold> ne contient aucun élément.