Elasticsearch每月平均每日计数

时间:2019-07-17 08:47:47

标签: elasticsearch average date-histogram

我的Web应用程序从elasticsearch响应中呈现可视化。对于其中一种情况,我希望获得每周平均的事件数。但我不想为日常活动而忙碌。

我尝试使用date_histogram对每周和每天的数据进行分组,然后使用avg_bucket来获取每周的每日平均值。但是现在,响应也包含了日常事件的存储桶。

  {
    "aggs": {
        "_weekly": {
            "date_histogram": {
                "field": "@timestamp",
                "calendar_interval": "1w"
            },
            "aggs": {
                "_daily": {
                    "date_histogram": {
                        "field": "@timestamp",
                        "calendar_interval": "1d"
                    }
                },
                "daily_avg": {
                    "avg_bucket": {
                        "buckets_path": "_daily>_count",
                        "gap_policy": "insert_zeros"
                    }
                }
            }
        }
    }
}

我收到一个星期的回复是

{
    "aggregations": {
        "_weekly": {
            "buckets": [
                {
                    "key_as_string": "2018-08-27T00:00:00.000Z",
                    "key": 1535328000000,
                    "doc_count": 5046,
                    "_daily": {
                        "buckets": [
                            {
                                "key_as_string": "2018-08-27T00:00:00.000Z",
                                "key": 1535328000000,
                                "doc_count": 1677
                            },
                            {
                                "key_as_string": "2018-08-28T00:00:00.000Z",
                                "key": 1535414400000,
                                "doc_count": 2139
                            },
                            {
                                "key_as_string": "2018-08-29T00:00:00.000Z",
                                "key": 1535500800000,
                                "doc_count": 1203
                            },
                            {
                                "key_as_string": "2018-08-30T00:00:00.000Z",
                                "key": 1535587200000,
                                "doc_count": 13
                            },
                            {
                                "key_as_string": "2018-08-31T00:00:00.000Z",
                                "key": 1535673600000,
                                "doc_count": 2
                            },
                            {
                                "key_as_string": "2018-09-01T00:00:00.000Z",
                                "key": 1535760000000,
                                "doc_count": 11
                            },
                            {
                                "key_as_string": "2018-09-02T00:00:00.000Z",
                                "key": 1535846400000,
                                "doc_count": 1
                            }
                        ]
                    },
                    "daily_avg": {
                        "value": 720.8571428571429
                    }
                },
                ....
            ]
        }
    }
}

可以看出,尽管我每周都有每天的平均值,但我也有每天的水桶。 我只想得到每个星期都有水桶的响应以及daily_average 请提出如何避免在响应中出现“ _daily”存储桶的问题。也欢迎使用其他方法来获得解决方案

0 个答案:

没有答案