如何让Grafana仪表板中关联指标的Group By转换正常工作?
Grafana多指标关联后Group By转换异常问题
关系型数据库的GROUP BY参考行为
在关系型数据库中,可通过group by功能去除重复行,以下是PostgreSQL的示例:
# select * from test order by cluster; cluster | foo | bar ---------+-----+------ berta | 712 | 0 berta | 712 | 1223 hanna | 838 | 119 hanna | 838 | 119 hanna | 838 | 119 hanna | 3 | 119 select * from test group by(cluster,foo,bar) order by cluster; cluster | foo | bar ---------+-----+------ berta | 712 | 1223 berta | 712 | 0 hanna | 838 | 119 hanna | 3 | 119
此处集群hanna存在3条重复行和1条不同行,group by最终仅显示两行:一行来自重复行,另一行为不同行。我原本预期Grafana中的Group By转换也会遵循此逻辑,但实际并非如此。
问题详情
我使用两个PromQL指标(任意指标组合都会触发该问题,因此指标本身无关紧要):
label_replace( kube_pod_container_info{container="elasticsearch", image=~".*elastic.*"}, "elasticversion", "$1", "image", ".*:(.*)" ) label_replace( kube_pod_container_info{container="kibana", image=~".*kibana.*"}, "kibanaversion", "$1", "image", ".*:(.*)" )
我制作了一个仪表板表格视图,用于展示cluster、elasticversion和kibanaversion字段。两个指标通过cluster标签使用Join转换合并,之后基于cluster、elasticversion、kibanaversion执行Group By转换。但启用Group By后,除一行外所有行都被删除。
现象表现
- 单独展示两个指标的表格显示:所选集群上运行着两个不同版本的软件
- 合并两个指标后的关联表,Group By仅显示一行,尽管存在两种不同的字段组合
配置信息
- 指标:上述两个PromQL查询语句
- 转换:先通过
cluster标签执行Join合并,再基于cluster、elasticversion、kibanaversion执行Group By
需求
如何让合并指标后的所有唯一行都正常显示在表格中?
补充说明
该异常仅在对多个关联指标使用Group By转换时出现,单个指标使用Group By时工作正常。另外,若有人知道如何根据容器名称生成不同的版本标签,也可解决我的问题。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

