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

时间:2016-01-11 06:59:20

标签: fiware complex-event-processing

我正在使用质子CEP和Orion Context Broker开发应用程序。我有传感器更新温度,CEP将温度更新作为事件。如果连续两次更新中有10个差异,我希望CEP产生警报。

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

我如何编写规则来实现这一目标?

1 个答案:

答案 0 :(得分:1)

CEP强烈提到时间窗口。您没有提到想要检测两个传感器事件之间差异的时间窗口。让我们假设你想要检测10分钟内到达的事件之间的差异。

在CEP中,您需要定义一个时间上下文,它将您的输入事件作为发起者,相对时间终止符为10分钟。确保将事件启动器的关联策略设置为 添加 ,以便每个输入事件都会启动一个上下文实例,即使另一个已经是打开。

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

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

在EPA的条件下,您需要设置条件:

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

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

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

关于CEP与Orion上下文代理的集成,请参阅CEP user guide中的附录A.