如何在Grafana中按版本聚合展示多OpenShift集群版本饼图
Grafana饼图需求:按OpenShift版本聚合,Tooltip显示对应集群列表
现状与问题
我现在用Grafana做饼图,想展示所有OpenShift集群的当前版本分布。这些集群的指标通过remote_write推送到中央Thanos,可通过PromQL查询cluster_version指标。
目前使用的查询语句是:
group by (version,cluster) (cluster_version{type="completed"})
但这个查询生成的饼图,每个切片都是「版本+单个集群」的组合(一共7个集群就有7个切片),完全不符合我想要的效果。
期望效果
我需要的饼图满足以下要求:
- 每个切片对应一个OpenShift版本,切片数量和版本数量一致
- 鼠标悬浮到切片上时,Tooltip显示该版本对应的所有集群列表(逗号分隔或分行显示均可)
可用条件与疑问
- 允许创建自定义Prometheus记录规则
- 不能安装Grafana外部插件,只能使用工具默认功能
- 之前ChatGPT说这个需求无法实现,想确认是否真的做不到?
查询返回的单个DataFrame示例
[ { "schema": { "refId": "B", "meta": { "type": "timeseries-multi", "typeVersion": [ 0, 1 ], "custom": { "resultType": "matrix" } }, "fields": [ { "name": "Time", "type": "time", "typeInfo": { "frame": "time.Time" }, "config": { "interval": 15000 } }, { "name": "cluster_version", "type": "number", "typeInfo": { "frame": "float64" }, "labels": { "__name__": "cluster_version", "cluster": "cluster1", "endpoint": "metrics", "from_version": "4.16.38", "image": "quay.io/openshift-release-dev/ocp-release@sha256:2754cd66072e633063b6bf26446978102f27dd19d4668b20df2c7553ef9ee4cf", "job": "cluster-version-operator", "kluster": "cluster1", "namespace": "openshift-cluster-version", "pod": "cluster-version-operator-55fc6649f6-b4d4h", "prometheus": "openshift-monitoring/k8s", "service": "cluster-version-operator", "tenant_id": "default-tenant", "type": "completed", "version": "4.16.39" }, "config": { "displayNameFromDS": "4.16.39 | cluster1" } } ] }, "data": { "values": [ [ 1747838670000, 1747838685000, 1747838700000, 1747838715000, 1747838730000, 1747838745000, 1747838760000, 1747838775000, 1747838790000 ], [ 1746492425, 1746492425, 1746492425, 1746492425, 1746492425, 1746492425, 1746492425, 1746492425, 1746492425 ] ] } } ]
内容的提问来源于stack exchange,提问作者Patrik Martinsson
相关产品推荐
相关产品推荐

