eventCountThreshold 元素

<eventCountThreshold> 元素仅对阈值规则有效。该元素定义必须在某个 时间段内符合事件选择条件的事件的数量。<eventCountThreshold> 元素还为时间窗口 指定两个可能的时间间隔方式之一(固定或滑动)。

详细信息

固定时间间隔
固定时间间隔在接收到第一个符合事件选择条件的事件时开始, 在发生以下某种情况时结束:
  • 规则在指定的持续时间内符合其阈值。
  • 指定的持续时间已过。
滑动时间间隔
滑动时间间隔在接收到第一个符合事件选 择条件的事件时开始。然而,当规则尚未符合其阈值且指定的持续时间已过时,时间窗口将把开始 时间调整(滑动)为新的“第一个”事件的接收时间,通常情况下为接受的下一个事件。 在发生以下某种情况之前,滑动时间间隔将继续以该方式进行调整:
  • 规则在指定的持续时间内符合其阈值。
  • 在接收到启动时间窗口的事件后,指定的持续时间内未接收到后续事件。
启动时间窗口的事件(成为新的“第一个”事件)为具有符合以下条件的 接收时间的事件:接收时间加上规则的时间间隔持续时间大于当前时间。以下 为公式形式的条件:
事件接收时间 + 规则的时间间隔持续时间 > 当前时间
当不存在此类事件时,滑动时间间隔将无法再调整时间,时间间隔将结束。
在符合阈值或该时间段结束之前,阈值规则将计算每个接受的 事件的数量。随后它将相应地运行 <onDetection> 元素或 <onTimeOut> 元素中定 义的操作。
<onDetection> 操作
这些操作在事件计数与 <eventCountThreshold> 元素的阈值属性所定义的值相 同(表明符合该阈值)时运行。
<onTimeOut> 操作
这些操作运行的时间取决于时间间隔方式是固定的还是滑动的。
固定方式
使用固定方式,这些操作将在时间窗口到期时运行。
滑动方式
使用滑动方式,在接收到启动时间窗口的事件后且指定的持续时间内未接收到后续 事件,这些操作将运行。换言之,不存在任何事件,其接收时间加上规则的时间间隔持续时间大 于当前时间。

时间窗口的时间间隔方式由 <eventCountThreshold> 元素的 timeIntervalMode 属性来定义。 以下场景将说明这两个可能的时间间隔方式的行为以及之间的区别。

说明固定和滑动方式的场景

假定规则接收 4 个符合事件选 择条件的事件,分别在以下时间: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 接收到事件时,由于目前已在最近的时间窗口(8:04 - 8:09)中符合其阈值(在 8:04、8:06 和 8:07 接收到 3 个事件),因此将运行 <onDetection> 操作。

滑动方式是动态的,因为它将不断调整(滑动)开始时间,以尝试在时间窗口中符合阈值。

现在,假定规则接收到 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> 不包含元素。