elasticsearch - Kibana 可视化中的聚合聚合
问题描述
我正在尝试在 Kibana 中的一组聚合之上添加一些指标,但是我不知道该怎么做。例如,我的数据如下所示:
{{"A": 12, "B": 15, "month": "July" },
{"A": 5, "B": 98, "month": "August"},
{"A": 54, "B": 21, "month": "July" },
{"A": 53, "B": 4, "month": "August"},
{"A": 15, "B": 24, "month": "August"},
{"A": 45, "B": 33, "month": "July" },
{"A": 25, "B": 56, "month": "August"},
{"A": 8, "B": 23, "month": "August"},
{"A": 7, "B": 78, "month": "July" }}
我想画一个折线图来显示几个月的 SUM(A)/SUM(B)。所以 Y 轴SUM(A)/SUM(B) per month
在这个例子中。这是一种在聚合上应用聚合函数的方法。我知道我们可以在弹性搜索中进行聚合聚合,但是在 Kibana 可视化中呢?在当前版本的 Kibana (6.3) 中可以做到这一点吗?谢谢!
解决方案
正如评论中已经指出的那样,这需要bucket_script
在 Elasticsearch 中进行聚合。这目前不适用于 Kibana 中的“经典图表”(请参阅 kibana/#4707)。
您可以使用带有表达式的 Timelion 来解决这个问题(如上面 Andrei 所指出的),并在编辑器(或 Timelion 应用程序)的间隔选择器中将间隔切换为 1M:
.es(index=test,metric=sum:A,timefield=month).divide(.es(index=test,metric=sum:B,timefield=month))
另一种解决方案是使用“Visual Builder”,其配置如下所示:
如果您需要每月值,您还应该在“面板选项”下选择interval
大小。1M
推荐阅读
- html - Flexbox 容器比其内容略高
- unit-testing - 去 assert.Equal 一些接口与 time.Time 里面的对象
- celery - 无法使用 Celery 获得 hello world - 未配置后端
- blockchain - 在opensea中设置minter钱包地址为NFT的创建者
- javascript - 删除复制输入上的文本之间的间距
- javascript - 一旦用户在其他应用程序上共享任何内容并返回实际应用程序,Share.open 总是在 android 设备上返回消息未定义
- python - 当 Python/Pandas 中出现不同行时重新启动计数列
- fortran - FORTRAN 子例程认为我传递的字符串的长度不是它的长度
- flutter - 颤振:[FirebaseAuth:] getGoogleApiForMethod() 返回 Gms:com.google.firebase.auth.api.internal.zzao@8bd986e
- typescript - Blob 存储临时 URL