首页 > 解决方案 > 发现 Elasticsearch 的历史趋势(非可视化)

问题描述

我在使用 Elastic 作为日志存储方面有一些经验,但随着时间的推移,我一直坚持基本的趋势识别(我需要将找到的文档相互比较)。

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

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

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

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

欢迎任何参考文档或简单示例!

标签: elasticsearch

解决方案


Well script 不能在文档之间使用。因此,您将不得不使用有效载荷。

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

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 来索引您的文档,看看 elapsed,也可能很好:https ://www.elastic.co/guide/en/logstash/current/plugins-filters-elapsed.html


推荐阅读