如何使elasticsearch可视化聚合产生的两个度量的商?例如,我有游戏的总收费和每天所有活跃用户的总和,我想可视化ARPU(总收费/所有活跃用户),我该怎么做?
{
"size": 0,
"query": {
"query_string": {"query": "*"}
},
"aggs": {
"2": {
"date_histogram": {
"field": "date",
"interval": "1d",
"time_zone": "Asia/Shanghai",
"min_doc_count": 1
},
"aggs": {
"sum_pay1": {
"sum": {
"field": "pay"
}
},
"sum_active1": {
"sum": {
"field": "active_users"
}
},
"ARPU":{
"bucket_script": {
"buckets_path": {
"sumpay": "sum_pay1",
"sumactive": "sum_active1"
},
"script": "sumpay / (1.0*sumactive)"
}
}
}
}
}
}
如何可视化ARPU?
您可以直接在Kibana中创建脚本字段,它将为您提供所需的结果。
按照以下步骤在Kibana中创建脚本字段:
-
在Kibana中,点击设置选项卡,然后点击索引模式
-
你应该看到两个选项卡"Fields"one_answers"Scripted Fields"
-
点击"Scripted fields"选项卡。
-
在Script字段中输入"Name"作为Ratio,并输入以下内容:-
doc("支付")。Value/doc['active_users'].value
其中pay和active_users是存储在Kibana中的字段名。 点击底部的"Create Field"。现在您的脚本字段将被添加&