在关系数据库中,您可以使用
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
仅显示两行,其中 3 个重复行和另一行。
我预计 Grafana 中的分组转换也能以同样的方式工作。但事实并非如此。
问题:
我有两个指标(指标的任何其他组合都会产生相同的结果,因此我认为指标本身并不重要):
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",
".*:(.*)"
)
我制作了一个带有表格视图的仪表板,其中显示集群、elasticversion 和 kibanaversion。这两个指标使用
cluster
标签上的连接转换进行组合,并且使用 cluster、elasticversion、kibanaversion 进行分组转换。启用分组依据后,所有行都被删除,但其中一行被删除。
这是一个例子:
在上面的两个表中,我只将一个指标放入表视图中。可以看到,所选集群上运行着两个不同版本的软件。
但是,底部的表包含两个指标的连接表,并且即使有两种不同的组合,那里的分组仅显示一行。
以下是组合表的设置:
那么,如何才能使所有组合指标的所有唯一行都显示在表中?