前提:ES中存储的只有一个关于流量的字段,累计流量。  并且该值是累计增加的
1、统计每隔一定时间段(10分钟/1天)的流量消费、使用日期直方图可以做到
2、流量的计算比较麻烦,需要使用时间段内的每个站点累计流量的max-min,得到这个站点的消费流量、 (或者是否有更简单的计算方式)
3、单个站点的消费趋势好做,使用脚本管道分组聚合,获取max-min。如下:
																				1、统计每隔一定时间段(10分钟/1天)的流量消费、使用日期直方图可以做到
2、流量的计算比较麻烦,需要使用时间段内的每个站点累计流量的max-min,得到这个站点的消费流量、 (或者是否有更简单的计算方式)
3、单个站点的消费趋势好做,使用脚本管道分组聚合,获取max-min。如下:
{
    "query": {
        "term":{
        	"siteId": 1
        }
    },
    "aggs": {
        "date_histo": {
            "date_histogram": {
                "field": "collectTime",
                "interval": "1d",
                "format": "yyyy-MM-dd",
                "keyed": true
            },
            "aggs": {
                "totalRate": {
                    "stats": {
                        "field": "totalRate"
                    }
                },
	            "sunshi": {
	                "bucket_script": {
	                    "buckets_path": {
	                        "maxCost": "totalRate.max",
	                        "minCost": "totalRate.min"
	                    },
	                    "script": "params.maxCost - params.minCost"
	                }
	            }
            }
        }
    },
    "size": 0
}
 
	
1 个回复
匿名用户
赞同来自: