我想在kibana仪表板中创建一个指标,该指标使用多个指标的比率和偏移时间。
示例:
日期预算
YYYY-MM-DD $
2019-01-01 15
2019-01-02 10
2019-01-03 5
2019-01-04 10
2019-01-05 12
2019-01-06 4
如果我选择在2019-01-04到2019-01-06之间的时间范围,我想计算偏移周期为2019-01-01到2019-01-03的比率。
要恢复:(sum(10 + 12 + 4)-sum(15 + 10 + 5))/ sum(10 + 12 + 4)= -0.15 我的预算演变为-15%(这就是我要在信息中心中打印的内容)
但是,对于度量标准,这是不可能的(无偏移),对于可视化构建器:不同的度量标准聚合不会具有不同的偏移量(太糟糕了,因为存储区脚本允许计算比率),而对于vega:我也找不到解决方案。
有什么主意吗?非常感谢
奥瑞莲
注意:我使用的是kibana版本> 6.X
答案 0 :(得分:0)
请检查以下示例映射,该示例映射是根据您想在查询和聚合解决方案中提供的数据构建的。
PUT <your_index_name>
{
"mappings": {
"mydocs": {
"properties": {
"date": {
"type": "date",
"format": "yyyy-MM-dd"
},
"budget": {
"type": "float"
}
}
}
}
}
我利用了以下几种类型的聚合:
4d
我还假设日期格式为yyyy-MM-dd
,而budget
的数据类型为float
。
下面是聚合查询的方式。
POST <your_index_name>/_search
{
"size": 0,
"query": {
"range": {
"date": {
"gte": "2019-01-01",
"lte": "2019-01-06"
}
}
},
"aggs": {
"my_date": {
"date_histogram": {
"field": "date",
"interval": "4d",
"format": "yyyy-MM-dd"
},
"aggs": {
"sum_budget": {
"sum": {
"field": "budget"
}
},
"budget_derivative": {
"derivative": {
"buckets_path": "sum_budget"
}
},
"budget_evolution": {
"bucket_script": {
"buckets_path": {
"input_1": "sum_budget",
"input_2": "budget_derivative"
},
"script": "(params.input_2/params.input_1)*(100)"
}
}
}
}
}
}
请注意,您要查找的结果将在budget_evolution
部分中。
希望这会有所帮助!