发现Elasticsearch中的历史趋势(非视觉)

时间:2019-02-20 09:19:18

标签: elasticsearch

我在使用Elastic作为日志存储方面有一些经验,但是我在一段时间内仍无法掌握基本趋势识别(我需要将发现的文档彼此进行比较)。

简单的查询将回答以下问题:

查找所有出现的文档行(行由增长/连续@timestamp值指定),其中特定字段(例如threads_count)针对固定数量的文档或时间段正在增长。

  • 因此,如果我有某个应用程序的thread_count,则每天记录每一分钟,包括时间戳。并且我指定我要在10分钟内寻找增长趋势-结果应返回thread_count在至少10份文档之前的文档分钟数内大于thread_count的文档或文档集。

这是非常相似的任务,即查看折线图并通过肉眼识别生长中的部分。

也许我只是错过了正确的搜索功能名称。我对可视化不感兴趣,我想在API上搜索类似情况并采取必要的措施。

欢迎任何对文档或简单示例的引用!

1 个答案:

答案 0 :(得分:1)

好的脚本不能在文档之间使用。因此,您将不得不使用有效负载。

在查询中按日期对结果进行排序。

https://www.elastic.co/guide/en/elastic-stack-overview/6.3/how-watcher-works.html

有效负载中的脚本可以告诉您某个字段是否正在增加(类似的事情,现在无法访问es索引)

"transform": {
    "script": {
        "source": "ctx.payload.transform = []; def current_score = -1;
def current = []; for (int j=0;j<ctx.payload.hits.hits;j++){
//check in the loop if current_score increasing using ctx.payload.hits.hits[j]._source.message], if not return "FALSE"

 } ; return "TRUE",
    "lang": "painless"
    }
}

如果您使用logstash为文档建立索引,那么请看一下过去,这可能也不错:https://www.elastic.co/guide/en/logstash/current/plugins-filters-elapsed.html