Siddhi检查事件是否未在指定的时间窗口内到达? [英] Siddhi check if an event does not arrive within a specified time window?

查看:3
本文介绍了Siddhi检查事件是否未在指定的时间窗口内到达?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用CEP检查事件是否在指定的时间量(比如1分钟)内到达。如果不是,我想发布警报。

更具体地说,(服务器)计算机生成心跳数据流并将其发送到CEP。心跳流包含服务器ID和时间戳。如果在1分钟内没有心跳数据到达,则应生成警报。

使用CEP可以做这样的事情吗?我还看到了有关检测未发生事件的其他问题,但我仍然不确定如何处理上述方案。

推荐答案

您可以尝试:

define stream heartbeats (serverId string, timestamp long);

from heartbeats#window.time(1 minute) insert expired events into delayedStream;

from every e = heartbeats -> e2 = hearbeats[serverId == e.serverId]
  or expired = delayedStream[serverId == e.serverId]
within 1 minute
select e.serverId, e2.serverId as id2, expired.serverId as id3
insert into tmpStream;

// every event on tmpStream with a 'expired' match has timeout
from tmpStream[id3 is not null]
select serverId
insert into expiredHearbeats;

这篇关于Siddhi检查事件是否未在指定的时间窗口内到达?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆