我在弹性索引上插入了JSON记录。如何计算“devices”数组中存在的所有元素的数量,以便可以在Kibana Dashboard上显示计数?
过滤条件 - SAMPLE应用程序的设备数量需要显示为“4”,Kibana上的SAMPLE2应用程序需要显示“2”。
无过滤条件 - 设备计数显示为“6”设备。
{
"status" : "SUCCESS",
"request" : ["ABC"],
"applicationName" : "SAMPLE",
"endTime" : 1478772517736,
"devices" : ["d1","d2","d3","d4"]
}
,
{
"status" : "FAILED",
"request" : ["EDF"],
"applicationName" : "SAMPLE2",
"endTime" : 1478772517736,
"devices" : ["d5","d12"]
}
答案 0 :(得分:0)
您应该在Kibana
中创建scripted field,以获得数组元素的长度。所以你的脚本看起来像这样:
doc['devices'].values.size()
或强>
doc['devices'].values.length
然后您可以使用数据表可视化,其中使用terms aggregation将数组计数分别设置为applicationName
。或者你可以申请filters说:
applicationName:"SAMPLE"
applicationName:"SAMPLE2"
将显示给定过滤条件的数组计数。这SO可能会有所帮助。