eventCountThreshold 元素

<eventCountThreshold> 元素僅對臨界值規則有效。它會定義在特定時段中必須符合事件選擇準則的事件數目。<eventCountThreshold> 元素還會指定時間範圍之兩種可能的時間間隔模式的其中之一:固定或可調整。

詳細資訊

固定間隔
固定間隔開始於接收到第一個符合事件選擇準則的事件時,並結束於發生下列其中一項狀況時:
  • 規則符合其在指定持續期間內的臨界值。
  • 已經過指定的持續期間。
可調整的間隔
可調整的間隔開始於接收到第一個符合事件選擇準則的事件時。不過,當規則尚未符合其臨界值且已經過指定的持續期間時,時間範圍會將開始時間調整為新的「第一個」事件 (通常是下一個接受的事件) 的事件接收時間。可調整的間隔會繼續以此方式調整,直到發生下列其中一項狀況為止:
  • 規則符合其在指定持續期間內的臨界值。
  • 接收到開始時間範圍的事件之後,在指定的持續期間內未接收到後續事件。
開始時間範圍的事件 (變成新的「第一個」事件) 的接收時間符合以下準則: 新增至規則之時間間隔期間的接收時間大於目前的時間。下面是方程式形式的準則:
事件接收時間 + 規則的時間間隔期間 > 目前的時間
當不存在此類事件時,可調整的間隔就無法再調整時間,間隔便會結束。
臨界值規則會計算每個接受的事件,直到達到臨界值或時段結束為止。然後,它會視需要執行在 <onDetection> 元素或 <onTimeOut> 元素內定義的動作。
<onDetection> 動作
當事件計數等於由 <eventCountThreshold> 元素之臨界值屬性所定義的值 (這指出符合臨界值) 時,會執行這些動作。
<onTimeOut> 動作
視時間間隔模式是固定還是可調整,來決定何時執行這些動作。
固定模式
使用固定模式,會在時間範圍到期時執行這些動作。
可調整模式
使用可調整模式,若在接收到開始時間範圍的事件之後,未在指定的持續期間內接收到任何後續事件,就會執行這些動作。換句話說,新增到規則的時間間隔期間後,所接收到之任何事件的接收時間都不會大於目前的時間。

時間範圍的時間間隔模式是由 <eventCountThreshold> 元素的 timeIntervalMode 屬性來定義。下列實務範例說明兩種可能時間間隔模式的行為及其差異。

說明固定及可調整模式的實務範例

假設規則接收到四個符合事件選擇準則的事件,其接收時間分別為:8:00、8:04、8:06 及 8:07。事件計數臨界值是 3,且時間範圍的期間是 5 分鐘。
具有 fixed 模式的規則行為
使用此時間間隔模式,臨界值規則會於 8:00 開始處理,並於 8:05 執行 <onTimeOut> 動作, 因為它在 5 分鐘內僅收到 2 個事件。因此,它不符合其在時間範圍內的臨界值。於 8:06 接收到第三個事件時,臨界值規則會重新開始處理, 並於 8:11 執行 <onTimeOut> 動作,因為它在 5 分鐘內僅接收到 2 個事件。

固定模式是靜態的。

具有 sliding 模式的規則行為
使用此時間間隔模式,臨界值規則會於 8:00 開始處理。在 8:05 (排定時間範圍結束的時間) 時,規則判定它僅接收到 2 個事件。然後,規則會捨棄它於 8:00 接收到的事件,並重新計算期間於 8:09 結束 (因為現在的第一個事件是它於 8:04 接收到的事件)。當規則於 8:07 接收到事件時,它會執行 <onDetection> 動作,因為它現在已符合其最新時間範圍 (8:04 - 8:09) 內的臨界值 (分別於 8:04、8:06 及 8:07 接收到 3 個事件)。

可調整模式是動態的,所以它會繼續調整開始時間,以嘗試符合其在時間範圍內的臨界值。

現在假設規則接收到 4 個符合事件選擇準則的事件,其接收時間分別為:8:00、8:04、8:06 及 8:10。事件計數臨界值是 3,且時間範圍的期間是 5 分鐘。
具有 sliding 模式的規則行為
在此情況下,臨界值規則會於 8:00 開始處理。在 8:05 (排定時間範圍結束的時間) 時,規則判定它僅接收到 2 個事件。然後,規則會捨棄它於 8:00 接收到的事件,並重新計算期間於 8:09 結束 (因為現在的第一個事件是它於 8:04 接收到的事件)。

在 8:09 (現在排定時間範圍結束的時間) 時,規則判定它僅接收到 2 個事件。然後,規則會捨棄它於 8:04 接收到的事件,並重新計算期間於 8:11 結束 (因為現在的第一個事件是它於 8:06 接收到的事件)。

在 8:11 (現在排定時間範圍結束的時間) 時,規則判定它僅接收到 2 個事件。然後,規則會捨棄它於 8:06 接收到的事件,並重新計算期間於 8:15 結束 (因為現在的第一個事件是它於 8:10 接收到的事件)。

在 8:15 (現在排定時間範圍結束的時間) 時,規則判定自從 8:10 (開始時間範圍) 接收到的事件之後,未接收到任何事件。然後,規則會執行 <onTimeOut> 動作。

屬性

<eventCountThreshold> 具有下列屬性:

表 1. <eventCountThreshold> 元素的屬性
名稱 說明 資料類型 必要的嗎?
臨界值 會定義在特定時段內必須符合事件選擇準則的事件數目。這是要符合的事件計數臨界值。此值必須是正整數。 xsd:positiveInteger
timeIntervalMode 會定義時間範圍的時間間隔是固定還是可調整。此屬性的有效值為:
  • fixed (預設值)
  • sliding
xsd:string

包含範圍

<eventCountThreshold> 內含在下列元素中:

包含

<eventCountThreshold> 不包含任何元素。