我正在使用ElasticSearch作为时间序列数据库,并且试图识别数据中有趣的事件。
为此目的,事件的定义是同时发生的一些条件的组合。
说:CPU> 90 AND内存<1000 AND disk <10000同时。
我们可以假设每个条件本身都很频繁,但是很少见。
数据文档如下所示:
{
...
"time": "2016-11-26T01:00:00Z",
"cpu": 92,
"memory": 900
...
}
{
...
"time": "2016-11-26T00:15:00Z",
"disk": 2000,
...
}
现在的问题是每个系列的测量间隔不同,因此可能每秒测量一次CPU,而每小时测量一次磁盘。 我需要查询来插值最后一个采样值,因此在上面的示例中,我需要考虑01:00的有效值是cpu:92,内存:900和disk:2000,即使cpu是在45分钟之前采样的。 因此,对于本示例而言,在时间01:00时,所有条件均已满足,并且查询应显示事件已发生。
就我的目的而言,可以随时返回所有满足条件的索引。