如何在Kibana数据表中按项创建子计数列
我正在尝试从Elasticsearch中的数据自定义数据表 假设我有一个字段“部门”,它可以是“部门a”或“部门B”或“部门C”等等。。。 但我只能显示所有记录的总数,而不能使用department字段获取小计数值 请参阅下表: 只有“总计”列是正确的。 我的任务是实现“部门A”和“其他部门”下的数字 是否有可以应用于度量的过滤器?或者有其他方法吗 如果您需要更多信息,请告知 更新------------------------------------------- 搜索后,我找到了解决方法: 首先在Kibana中创建两个脚本字段,如下所示: 脚本化字段名:sf_dept_A 朗:无痛的 脚本:如何在Kibana数据表中按项创建子计数列,kibana,metric,Kibana,Metric,我正在尝试从Elasticsearch中的数据自定义数据表 假设我有一个字段“部门”,它可以是“部门a”或“部门B”或“部门C”等等。。。 但我只能显示所有记录的总数,而不能使用department字段获取小计数值 请参阅下表: 只有“总计”列是正确的。 我的任务是实现“部门A”和“其他部门”下的数字 是否有可以应用于度量的过滤器?或者有其他方法吗 如果您需要更多信息,请告知 更新------------------------------------------- 搜索后,我找到了解决方法:
if (doc["department"].value.equals("Dept A"))
return 1;
else
return 0;
if (doc["department"].value.equals("Dept A") == false)
return 1;
else
return 0;
脚本字段名称:sf\U其他\U部门
朗:无痛的
脚本:
if (doc["department"].value.equals("Dept A"))
return 1;
else
return 0;
if (doc["department"].value.equals("Dept A") == false)
return 1;
else
return 0;
创建上述两个脚本化字段后,转到创建datatable,只需添加脚本化字段总和的mertics
添加指标
- 合计:总和
- 字段:sf_dept_A
- 自定义标签:部门A
- 合计:总和
- 字段:sf_dept_A
- 自定义标签:部门A
- 聚合:计数
- 自定义标签:总计
但是这需要更多的资源,如果我有许多部门,我必须创建许多字段。在您的拆分行下,您可以简单地应用 假设您在每个记录中都有一个名为Department的字段,您可以使用两个过滤器,如下所示:
Department:"Dept A"
Department:"Dept B"
它可能看起来像这样
或
您可以使用聚合来根据字段的相应值区分结果。理想情况下,应显示每个部门的计数。但是我不认为你可以显示计数,部门之间用列隔开,尽管你已经在上面的屏幕截图中显示了
然而,您可以看到每个部门的计数以及您选择的时间戳,它应该如下所示:
Timestamp Departments Count
01/01/17 Depa A 1
01/01/17 Depa B 2
02/01/17 Depa C 1
02/01/17 Depa B 6
希望这有帮助 在Kibana的最新版本中,您可以使用“JSON输入”在给定的可视化中动态执行此操作,而无需编写脚本字段:
- 在您的可视化中,创建一个“总和”度量(我认为,在任何字段上,该字段最终都会被忽略…?)
- 在该总和指标下,单击“高级”链接,显示“JSON输入”文本框
- 在该文本框中,键入如下内容:
{ “脚本”:{ “内联”:“doc['SomeField'].value=='SomeValue'?1:0”, “郎”:“无痛” } }
我懂了。但我真的希望部门计数由列分隔,而不是将它们分隔成行。我注意到度量有“JSON输入”字段。“我可以把过滤规则放在那里得到结果吗?”比尔,但据我所知,还没有添加一个增强功能。我还没有尝试过使用JSON输入,也许你可以试试。仅供参考,您可以使用JSON输入进行一些聚合。类似于
{'script':'(_值)/100'}
!如果有帮助,可以告诉我吗?@bill这方面运气好吗?嗨,我从你提供的链接中找到了另一种方法。如果预期的度量是“Count”,则可以使用脚本化字段来执行:对于所需的每个datatable列,定义一个脚本化字段,其表达式为:?1:0然后在datatable visualization editor中,对于您想要的每一列,添加一个引用脚本字段的“总和”度量感谢您分享您的方法,它对我有用。