- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想改进我的产品,我想为其编写一个复杂的分析器界面。我使用elasticsearch来存储日志,每天存储超过5000万条日志。因此,重要的是可以在上述接口(interface)上创建不同的查询,这将显着限制要分析的日志数量。 wso2 cep 组件将获取要测试的日志,然后以 json 形式返回结果,该结果将显示在我的应用程序上。如果我可以使用日志的时间戳而不是内部时间( System.currentTimeMillis() ),WSO2 cep 库会很棒。
https://docs.wso2.com/display/CEP300/Windows
如果有办法使用属性作为时间戳或者使用send方法的时间戳参数就好了。
public void send(long timeStamp, Object[] data) throws InterruptedException
同时我发现了另一个问题:我需要那些后面跟着指定事件的事件。
示例:
query = " from every a1=LoginEvents[ip == '192.10.1.2']<2> -> " +
" b1=LoginEvents[ip == '192.10.1.1']<1> " +
" within 10 sec " +
" select a1[0].myTime, a1[0].ip, b1[0].ip as b1ip, b1[0].myTime as b2Time " +
" insert into OutPut for all-events ";
siddhiManager.addCallback(queryReference, new QueryCallback() {
@Override
public void receive(long timeStamp, Event[] inEvents, Event[] removeEvents) {
if (inEvents != null) {
for (Event e : inEvents) {
System.out.printf(" Ip1 : %s Time1 : %s Ip2: %s Time2 : %s \n", e.getData(1), new Date((Long) e.getData(0)).toString(), e.getData(2), new Date((Long) e.getData(3)).toString());
}
}
}
});
InputHandler inputHandler = siddhiManager.getInputHandler("LoginEvents");
Calendar c = Calendar.getInstance();
c.add(Calendar.HOUR, 1);
c.add(Calendar.SECOND, 1);
int i = 0;
String ip = null;
for (i = 0; i <= 50; i++) {
ip = "192.10.1.2";
c.add(Calendar.SECOND, 2);
if (i % 10 == 0) {
ip = "192.10.1.1";
}
System.out.printf("Sending event : time %s , ip : %s \n", c.getTime().toString(), ip);
inputHandler.send(c.getTime().getTime(), new Object[]{c.getTime().getTime(), ip, "1", new Random().nextInt(1000)});
}
以上查询没有结果。尽管如此,它似乎应该很受欢迎,因为以下日志已发送到 siddhiManager。输出:
Sending event : time Wed Sep 23 11:06:24 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:26 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:28 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:30 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:32 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:34 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:36 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:38 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:40 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:42 CEST 2015 , ip : 192.10.1.1
Sending event : time Wed Sep 23 11:06:44 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:46 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:48 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:50 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:52 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:54 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:56 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:06:58 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:00 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:02 CEST 2015 , ip : 192.10.1.1
Sending event : time Wed Sep 23 11:07:04 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:06 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:08 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:10 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:12 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:14 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:16 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:18 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:20 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:22 CEST 2015 , ip : 192.10.1.1
Sending event : time Wed Sep 23 11:07:24 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:26 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:28 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:30 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:32 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:34 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:36 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:38 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:40 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:42 CEST 2015 , ip : 192.10.1.1
Sending event : time Wed Sep 23 11:07:44 CEST 2015 , ip : 192.10.1.2
以下事件应该与“查询”匹配,但 instaed 没有给我任何结果。以下日志应该是输出:
Sending event : time Wed Sep 23 11:06:58 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:00 CEST 2015 , ip : 192.10.1.2
Sending event : time Wed Sep 23 11:07:02 CEST 2015 , ip : 192.10.1.1
此外,如果查询类型是序列,我只需要一对作为结果。假设以下日志将被发送到队列:
Sending event : time Mon Sep 28 14:49:01 CEST 2015 , ip : 192.10.1.1
Sending event : time Mon Sep 28 14:49:03 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:05 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:07 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:09 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:11 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:13 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:15 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:17 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:19 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:21 CEST 2015 , ip : 192.10.1.1
Sending event : time Mon Sep 28 14:49:23 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:25 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:27 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:29 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:31 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:33 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:35 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:37 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:39 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:41 CEST 2015 , ip : 192.10.1.1
Sending event : time Mon Sep 28 14:49:43 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:45 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:47 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:49 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:51 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:53 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:55 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:57 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:49:59 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:01 CEST 2015 , ip : 192.10.1.1
Sending event : time Mon Sep 28 14:50:03 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:05 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:07 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:09 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:11 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:13 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:15 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:17 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:19 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:21 CEST 2015 , ip : 192.10.1.1
Sending event : time Mon Sep 28 14:50:23 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:25 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:27 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:29 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:31 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:33 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:35 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:37 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:39 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 14:50:41 CEST 2015 , ip : 192.10.1.1
我只需要那些后面跟着指定事件的事件。我只需要那些日志,后面跟着 ip 192.10.1.1 的日志(如果有一个事件被分析,那么它不应该再次被分析)。所以结果应该是 6-7 次命中,但 siddhi 给了我所有可能的命中。
例如:
query = " from a1=LoginEvents[ip == '192.10.1.2']+, " +
" b1=LoginEvents[ip == '192.10.1.2']+," +
" c1=LoginEvents[ip == '192.10.1.1'] " +
" within 10 sec " +
" select a1[0].myTime, a1[0].ip, b1[0].ip as b1ip, b1[0].myTime as b2Time " +
" insert into OutPut for current-events ";
;
对于模式来说也是如此
query = " from every a1=LoginEvents[ip == '192.10.1.2'] -> " +
" b1=LoginEvents[ip=='192.10.1.1'] " +
" within 10 sec " +
" select a1[0].myTime, a1[0].ip, b1[0].ip as b1ip, b1[0].myTime as b2Time " +
" insert into OutPut for all-events ";
;
输出如下:
Sending event : time Mon Sep 28 15:13:21 CEST 2015 , ip : 192.10.1.1
log4j:WARN No appenders could be found for logger (org.wso2.siddhi.core.query.processor.handler.sequence.SequenceInnerHandlerProcessor).
log4j:WARN Please initialize the log4j system properly.
Sending event : time Mon Sep 28 15:13:23 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:25 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:27 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:29 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:31 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:33 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:35 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:37 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:39 CEST 2015 , ip : 192.10.1.2
Sending event : time Mon Sep 28 15:13:41 CEST 2015 , ip : 192.10.1.1
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:23 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:25 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:23 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:27 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:25 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:27 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:23 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:29 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:25 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:29 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:27 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:29 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:23 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:31 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:25 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:31 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:27 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:31 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:29 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:31 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:23 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:33 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:25 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:33 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:27 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:33 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:29 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:33 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:31 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:33 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:23 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:35 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:25 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:35 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:27 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:35 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:29 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:35 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:31 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:35 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:33 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:35 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:23 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:37 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:25 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:37 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:27 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:37 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:29 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:37 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:31 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:37 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:33 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:37 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:35 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:37 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:23 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:39 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:25 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:39 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:27 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:39 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:29 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:39 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:31 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:39 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:33 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:39 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:35 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:39 CEST 2015
--------
--------
event
Ip1 : 192.10.1.2 Time1 : Mon Sep 28 15:13:37 CEST 2015 Ip2: 192.10.1.2 Time2 : Mon Sep 28 15:13:39 CEST 2015
-
最佳答案
CEP 3.0.0 是 Siddhi 2.0.0 附带的旧版本。我建议您使用最新的 WSO2 CEP 4.0.0,它与已重写的 Siddhi 3.0.0 相比有显着改进。您可以从 here 下载最新的 CEP 包。另一方面,Siddhi 存储库可在 GitHub 中使用。
在 Siddhi 3.0.0 中,您可以使用外部时间窗口来指定属性名称,如下所示。
from LoginEvents#window.externalTime(timeStamp,5 sec)
select timeStamp, ip
insert all events into uniqueIps
请参阅 WSO2 documentation on Time Windows 了解更多详情。对于模式问题,我认为最好检查 Siddhi 3.0 Within Test Case 语法并实现您的逻辑。
关于java - WSO2 CEP 序列和外部时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32823115/
我正在使用 Siddhi [1] 的 Java 库,并且注意到检索和处理由 Siddhi 运行时生成的事件有相当大的延迟。尽管两个Siddhi事件可能具有时间差为X秒的Siddhi事件时间戳,但是在接
我阅读了网站上提供的文档,但没有太多关于如何连接到服务器并从 java 访问其 CEP 功能的信息。例如,它接受 POJO 作为事件模型还是只是 xml?我们可以从 Java 创建事件模型和查询吗?如
我是一名优秀的程序员,十分优秀!