Kibana: 支持Bucket Script聚合

创建于 2015-08-19  ·  29评论  ·  资料来源: elastic/kibana

鉴于新的 Bucket Script Aggregation,我们可以从聚合的指标值(例如metric1 / metric2 * 100 )实现公式。 这将允许计算例如两个度量结果之间的比率。

https://www.elastic.co/guide/en/elasticsearch/reference/master/search-aggregations-pipeline-bucket-script-aggregation.html

使用场景:
链接: https :

Aggregations KibanaApp enhancement

最有用的评论

请在普通可视化中添加“Bucket Script Aggregation”或“Custom Aggregation”作为选项。 应该很简单,就像其他聚合一样,但不要在聚合体中添加任何内容(只是用户提供的json)

所有29条评论

@rashidkpc我不明白这是如何欺骗管道的东西。 5.4 中的管道,但我在那里没有看到存储桶脚本聚合。 我们可以重新打开这个吗?

我感兴趣的是这个功能,以做代表农民域的文档,我需要更大的权重为大场和小的小字段的值值的可视化,搜索查询已选择包括在外地文件后,加权平均值

bucket_script 功能似乎是答案(我在 elasticsearch 中使用它)但在使用 Kibana 可视化时我似乎无法重现这样的查询。

有没有计划很快支持这一点?

或者有什么解决方法吗?

(例如,我试图查看是否可以直接告诉 Kibana 我想要用于可视化的 elasticsearch 查询,而不是 Kibana 根据我的 UI 选择为我创建查询 - 但这似乎不可能?对吗? )

+1

我会对这个功能感兴趣。 在我们的用例中,它将允许解决成功/失败比率。

+1 也想看这个! 实施起来应该非常简单.. 只是下拉列表中的“自定义指标”,它显示了一个框,您可以在其中输入聚合 JSON..

从 Kibana 5.4 开始,时间序列可视化生成器现在支持存储桶脚本 agg,尽管它被称为“计算”(cc @simianhacker我想知道我们是否应该更明确地说明此选项依赖于“存储桶脚本”?)

这张票上的人(例如@Kazark)可以尝试一下,让我们知道它是否对您的用例有帮助吗?
screen shot 2017-08-30 at 6 51 54 am

我认为@simianhacker已经同意重命名此聚合是有意义的。 我已经打开https://github.com/elastic/kibana/issues/13796进行跟踪。

@tbragin

然而,如果 TSVB 支持额外的脚本聚合(例如脚本化总和聚合),那就太好了,因为如果支持所有类型的子聚合,桶脚本聚合只能充分利用其潜力。 但是因为这里不是更详细讨论这个的地方,所以我打开了另一个问题。

这个功能有时间表吗?

“计算”功能只能将存储桶脚本作为顶级,它不能应用于父存储桶聚合... :(

这只是在时间序列可视化中,标准可视化中没有存储桶脚本。

我们的特定用例需要两者,似乎都不支持 - 即使在 6.x(rc) 中也不支持
有没有这方面的计划?

在我们的用例中,每个文档都有一个开始时间和结束时间日期类型字段,我们需要生成跨这些存储桶的总体持续时间,按某个类别字段分组。
这涉及首先对该类别进行分桶,然后在该类别中执行 2 个指标:每个桶中文档的 min(start-time) 和 nax(end-time),然后应用使用这两个指标的管道脚本桶聚合 - aggs 计算它们之间的持续时间(max_end_time - min_start_time)。 这为我们提供了一个“持续时间”指标作为每个存储桶的输出。 然后我们想对它们应用一些 metric-pipeline-aggs。

此处详细介绍了几乎相同的结构: https :

我能够在查询 DSL 中表达这一点,我们已经在生产中使用它 - 但我们无法在 Kibana 中将这些可视化 - 这真的很糟糕,因为我们的客户多年来一直要求这样的可视化,而我们'一直告诉他们“我们需要更高版本的支持,用于管道聚合”......
好吧,现在我们有了这些 - 但实际上,不要......
在时间序列构建器中,我们有可以表达的bucket-script管道聚合,但它不能消费/应用于父bucket-term-aggregation,而在另一个可视化中,我们有bucket-term-聚合和一些管道指标聚合,但不是表达这一点所需的存储桶脚本管道聚合...

是否有使用一些“高级 JSON”的解决方法,我可以将我的查询 DSL 放在那里?

只需按照此问题的要求添加我的用例:

我的索引包含以下文档类型(代表测试执行):

  • 测试 ID(字符串)
  • 成功(布尔)
  • 软件版本

我想建立以下直方图:

  • 在 X 轴上:版本
  • 在 Y 轴上:独特测试的数量,按成功/失败堆叠

同一个测试id可以在同一个版本上多次执行,结果不同:一次成功就算成功。

我真的希望这能得到实施,因为这对我们来说是一个明确的展示。

请在普通可视化中添加“Bucket Script Aggregation”或“Custom Aggregation”作为选项。 应该很简单,就像其他聚合一样,但不要在聚合体中添加任何内容(只是用户提供的json)

对于任何对在 TSVB 中使用此功能的示例感兴趣的人,这里有一个相关的论坛帖子: https ://discuss.elastic.co/t/weighted-average-in-a-datatable-of-kibana/185909/2

请求的功能没有完成(!)这不是关于 TSVB,而是关于其他常规可视化类型(!)(条形图等)。 我们现在在 6.4 上,但我们仍然不能做我们需要的。 它也不在 7.x ASAIK 中。
同样,这是关于能够在条形图中选择“Bucket Script”(它在那里不可用)并在整体聚合的任何嵌套级别执行此操作。
我们还需要一个“Bucket Filter” BTW,以便能够通过一个简短的脚本过滤来自该聚合的桶。

抄送@elastic/kibana-app

“计算”功能只能将存储桶脚本作为顶级,它不能应用于父存储桶聚合... :(

这只是在时间序列可视化中,标准可视化中没有存储桶脚本。

我们的特定用例需要两者,似乎都不支持 - 即使在 6.x(rc) 中也不支持
有没有这方面的计划?

在我们的用例中,每个文档都有一个开始时间和结束时间日期类型字段,我们需要生成跨这些存储桶的总体持续时间,按某个类别字段分组。
这涉及首先对该类别进行分桶,然后在该类别中执行 2 个指标:每个桶中文档的 min(start-time) 和 nax(end-time),然后应用使用这两个指标的管道脚本桶聚合 - aggs 计算它们之间的持续时间(max_end_time - min_start_time)。 这为我们提供了一个“持续时间”指标作为每个存储桶的输出。 然后我们想对它们应用一些 metric-pipeline-aggs。

此处详细介绍了几乎相同的结构: https :

我能够在查询 DSL 中表达这一点,我们已经在生产中使用它 - 但我们无法在 Kibana 中将这些可视化 - 这真的很糟糕,因为我们的客户多年来一直要求这样的可视化,而我们'一直告诉他们“我们需要更高版本的支持,用于管道聚合”......
好吧,现在我们有了这些 - 但实际上,不要......
在时间序列构建器中,我们有可以表达的bucket-script管道聚合,但它不能消费/应用于父bucket-term-aggregation,而在另一个可视化中,我们有bucket-term-聚合和一些管道指标聚合,但不是表达这一点所需的存储桶脚本管道聚合...

是否有使用一些“高级 JSON”的解决方法,我可以将我的查询 DSL 放在那里?

@ArnonMarcus你能做到这一点吗? 我有类似的要求,但不知道如何在 Kibana 中实现。 我目前使用的是 6.7.1 版本

不......这仍然是一个悬而未决的问题。

从我作为数据科学家的角度来看,无法在可视化和地图中进行基本数学运算,例如聚合查询的比率(这在 Elastic 中称为 Bucket Script Aggregation)是整个 Kibana 平台的巨大限制

从好的方面来说,您可以通过制作自定义 Vega 可视化和地图来实现此功能。 该方法的唯一问题是您只能在可视化中显示 10000 个值,这对于创建包含大量数据的散点图或地图来说非常有限

+1

+1

此功能的一个用例是解决 Elasticsearch 没有用于导数聚合的非负选项,以便图表最终可以显示负导数值(在有意重启服务器时): https :

+1

这是用户非常需要的功能,类似于https://github.com/elastic/kibana/issues/17544。

有没有计划来实施这个?

会好的 !

+1

+1

我参加这个聚会迟到了,所以我的失望是新鲜的。

几天前,我创建了 Elastic 论坛主题“可视化从一个字段的每桶总和除以另一个字段的每桶总和计算得出的值? ”(抱歉标题冗长)。

不久之后,我发现了这个问题,并且很晚才意识到为什么我无法弄清楚如何在“标准” Kibana 可视化中做到这一点 ☹️。

我回复了我自己的论坛主题,引用了这个问题,并展示了在 TSVB 中使用存储桶脚本的基本示例 - 我想这就是我发布此评论的原因,以防它对任何人有帮助 - Vega-Lite。

等待这个想要的功能,数据表可视化的另一种选择是使用“增强表”社区插件,及其“计算列”功能:
https://github.com/fbaligand/kibana-enhanced-table

此页面是否有帮助?
0 / 5 - 0 等级