You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PromQL统计K8s多集群中应用的不同版本数量?

解决PromQL统计多集群应用版本数量的问题

要实现按应用统计不同版本的数量,你需要嵌套使用分组聚合:

count by (label_app) (count by (label_app, label_version) (kube_deployment_labels))

逻辑说明:

  1. 内层聚合 count by (label_app, label_version) (kube_deployment_labels):
    • 先按「应用+版本」的组合分组,生成每个组合对应的时间序列(值是该版本在集群中的部署次数,我们只需要这个序列存在即可)
  2. 外层聚合 count by (label_app):
    • 统计每个应用对应的「应用+版本」序列的数量,也就是该应用的不同版本个数

验证结果:

用你的数据测试的话,这条查询会输出:

label_appValue
app_12
app_22
app_31

完全符合你的预期。

为什么之前的查询不对?

你尝试的 count(group by(label_version)kube_deployment_labels) 没有按 label_app 分组,它统计的是全局所有应用的版本总数,自然无法关联到单个应用。通过先按「应用+版本」分组,再按应用统计分组数,就能精准得到每个应用的版本数量。

内容的提问来源于stack exchange,提问作者KC14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 08:37:46