我有一个索引,每2秒报告一次延迟值。这些文档包含时间戳,平均值,最小值和最大值。在任意一段时间(比如一两天)之后,我想连接这些文档以减少空间需求,将延迟值的分辨率降低到每分钟一次。
有没有办法在Elasticsearch或插件中执行此操作?或者我是否必须编写一个脚本来清理前一天的索引并计算每分钟的新的均值,最小值,最大值 - 删除文档?
答案 0 :(得分:1)
一种方法是滚动前一天的索引,进行计算并使用重新计算的数据重新创建新索引。这可以使用任何客户端语言来完成......
...或使用Logstash使用elasticsearch
输入来读取前一天的索引,aggregate
或ruby
过滤器来聚合数据并进行计算并{{1输出以写入新索引。
答案 1 :(得分:0)
我们正在为任何给定的kibana4表格可视化做一些类似的事情,包括时间序列数据。
我们有一个PHP代码,它获取给定的Kibana可视化ID,提取其聚合,为该聚合的时间直方图准备弹性搜索聚合查询,其中桶大小是您想要的分辨率(1d,1w,1M)。
然后我们将该聚合的结果存储在单独的索引中。
该方法的最大问题是,由于结果已经汇总,您无法在Kibana 4中显示聚合结果,因此为了在图表上显示这些分辨率,我们需要使用其他内容。
如果有一个Kibana插件可以完全实现并显示预聚合数据的图形,以及在Excel中显示它们的方式,那将是非常棒的。