如何使用质子 运行 时间检测事件值的突然增加或减少?

How to detect sudden increase or decrease in value for an event using proton run time?

我正在使用 proton CEP 和 Orion Context Broker 开发应用程序。我有更新温度的传感器,CEP 将温度更新作为事件获取。如果连续两次更新相差 10,我希望 CEP 发出警报。

例如: 传感器的最后更新是 35。如果下一次更新小于 26 或大于 44,我需要 CEP 来产生警报。

如何编写规则来实现此目的?

CEP 强烈提及时间windows。您没有提到您想要检测两个传感器事件之间差异的时间 window。假设您想要检测 10 分钟内到达的事件之间的差异。

在 CEP 中,您需要定义一个时间上下文,它将您的输入事件作为发起者,并将相对时间终止器设置为 10 分钟。确保将事件发起者的Correlation Policy设置为Add,这样每个输入事件都会启动一个上下文实例,即使另一个实例已经打开。

然后,您可以定义类型为Sequence的EPA(事件处理代理)。并将其设置为使用您定义的时间上下文。

此 EPA 将有两个参与者事件,均来自您输入事件的类型。 每个参与者事件都应该有一个不同的别名(比如 sensor1、sensor2),两者都应该有 First 的实例选择策略和 Consume 的消费策略。

在EPA的条件下你需要设置你的条件:

sensor2.temperature >= sensor1.temperature + 10 OR sensor2.temperature <= sensor1.temperature - 10

将评估策略设置为立即,基数策略设置为单一

与往常一样,您需要设置在检测到模式时将生成的派生事件。

关于CEP与Orion context broker的集成,请参考CEP user guide中的附录A。