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

使用Prometheus监控容器CPU使用率时PromQL组合查询无输出问题求助

问题原因

这是PromQL二元运算的标签匹配规则导致的:

  • 你直接对container_cpu_usage_seconds_total做sum()聚合时,默认会丢弃该指标的所有原始标签,聚合结果是一个无任何标签的单值瞬时向量
  • 另一个指标container_spec_cpu_quota的返回结果自带namespace、container、pod、instance等多个原始标签
  • PromQL对两个瞬时向量做算术运算时,默认只会将左右两边标签集完全一致的时间序列配对计算,匹配不到的序列会直接被丢弃,所以最终返回空结果,不会触发语法错误
解决方案

提供两种常用的修复方式:

方式1:保留匹配标签(推荐)

在sum聚合时通过by子句保留两边共有的匹配标签,就能正常完成配对:

(sum by (namespace, container) (rate(container_cpu_usage_seconds_total{namespace="nginx-enabled", container="nginx"}[30s])) * 100000) / container_spec_cpu_quota{namespace="nginx-enabled", container="nginx"}

该方式的优势是后续如果要批量统计多个容器的CPU使用率,只需要修改标签过滤条件即可,不需要调整查询结构。

方式2:转为标量运算

如果你确定container_spec_cpu_quota的查询结果永远只有一个返回值,可以用scalar()函数将其转为标量,运算时不需要做标签匹配:

(sum(rate(container_cpu_usage_seconds_total{namespace="nginx-enabled", container="nginx"}[30s])) * 100000) / scalar(container_spec_cpu_quota{namespace="nginx-enabled", container="nginx"})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:30:01