臨界值型樣

臨界值規則是由臨界值型樣來定義。此規則會收集某個時間間隔內的選定事件群組,並判定在收到每個事件之後,是否符合臨界條件。它是有狀態的規則。

概觀

臨界值型樣會收集某個時段內的事件,直到符合臨界值為止。時段是由必要的時間範圍來指示, 如規則語言中的 <timeWindow> 元素所定義。

臨界值型樣提供下列三個臨界值類型選項:
事件計數臨界值
使用這個臨界值類型,您可以定義某個時段內必須符合事件選擇準則的事件數目。定義的臨界值會與接受的事件數目進行比較。當事件計數與時間範圍內定義的限制相等時,便符合臨界值。

此類型的臨界值可用於非常簡單的事件計數檢查。例如,它可以回答問題:「1 分鐘內是否已發生 5 次登入失敗事件?」

此臨界值是由 <eventCountThreshold> 元素來定義。<eventCountThreshold> 元素還指定下列兩種可能的時間間隔模式之一作為時間範圍:
固定間隔
固定間隔開始於接收到第一個符合事件選擇準則的事件時,並結束於發生下列其中一項狀況時:
  • 規則符合其在指定持續期間內的臨界值。
  • 已經過指定的持續期間。
可調整的間隔
可調整的間隔開始於接收到第一個符合事件選擇準則的事件時。不過,當規則尚未符合其臨界值且已經過指定的持續期間時,時間範圍會將開始時間調整為新的「第一個」事件 (通常是下一個接受的事件) 的事件接收時間。可調整的間隔會繼續以此方式調整,直到發生下列其中一項狀況為止:
  • 規則符合其在指定持續期間內的臨界值。
  • 接收到開始時間範圍的事件之後,在指定的持續期間內未接收到後續事件。
開始時間範圍的事件 (變成新的「第一個」事件) 的接收時間符合以下準則: 新增至規則之時間間隔期間的接收時間大於目前的時間。下面是方程式形式的準則:
事件接收時間 + 規則的時間間隔期間 > 目前的時間
當不存在此類事件時,可調整的間隔就無法再調整時間,間隔便會結束。
計算的臨界值
使用此類型的臨界值,您可以撰寫程式碼 (或使用其他人撰寫的程式碼),對每個接受的事件執行計算, 並傳回計算的臨界值,而此值會儲存在先前定義的變數中。然後,將這個計算的臨界值與定義的臨界值進行比較,以判定是否符合臨界值。

因此,可以套用複式計算來建立 (或更新) 計算的臨界值 (可能使用先前事件中所儲存的資料),因此規則撰寫者可以不依賴計算臨界值的計算邏輯來設定定義的臨界值。

此類型的臨界值可用於將值與定義的臨界值進行合計與比較。例如,您可以使用它來計算某個時段內,某位客戶的銷售金額總計,並將該總額與定義的臨界值進行比較。

此臨界值是由 <computedThreshold> 元素來定義。

布林臨界值
使用此類型的臨界值,您可以撰寫程式碼 (或使用其他人撰寫的程式碼),針對每個接受的事件傳回值 truefalse。如果值為 true,則符合臨界值。如果值為 false,臨界值規則會繼續處理,直到時段結束,或它接受另一個事件為止。

此類型的臨界值可用於檢查值的範圍。比方說,如果無論何時 CPU 的使用率都必須介於 30% 至 80% 之間,則此臨界值可能會不斷地驗證使用率是否保持在該範圍之內。

此臨界值是由 <booleanThreshold> 元素來定義。

執行規則回應的條件

使用臨界值型樣,規則回應就會在下列時間執行:
  • 符合臨界值的時候,如 <onDetection> 元素所定義。
  • 已接受一或多個事件,但在時間範圍內尚未符合臨界值的時候,如 <onTimeOut> 元素所定義。

此規則型樣的範例用法

臨界值型樣與事件計數臨界值搭配的範例用法是執行下列作業的規則:
如果在 30 秒的可調整時間間隔內,同一個子網路中產生 4 個以上的無法存取伺服器事件,則規則會執行動作來檢查路由器的狀態。
相關參考
臨界值規則摘要