弹性搜索中的时间序列数据聚合

时间:2017-05-13 05:59:57

标签: elasticsearch aggregation

我有关于进程内存使用情况的时间序列指标。以下是字段:

<date>, <user>, <processid>, <memoryMB>

这里是时间。

1, foo, 1, 100
1, foo, 2, 500
2, foo, 3, 100
2, bar, 4, 100

在过去15天内找出任何用户的峰值内存使用量的最佳方法是什么?

这是带聚合的查询,它在每个时刻按用户添加memoryMB,然后我发布处理输出以获得最大内存MB。

{
    "from":0,
    "size":0,
    "query":{"bool":{"must":[{"range":{"date":{"gte":"now-15d"}}}]}},
    "aggs": {
        "name": {
            "terms": {
                "field": "user",
                "size": 1000
            },
            "aggs": {
                "date": {
                    "terms": {
                        "field": "date",
                        "order" : { "_term" : "asc" },
                        "size": 15000
                    },
                    "aggs": {
                        "mb": {
                            "sum": { "field": "memoryMB" }
                        }
                    }
                }
            }
        }
    }
}

谢谢, -Soumitra。

0 个答案:

没有答案