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

如何通过Grafana查询Prometheus中单个Quarkus服务的CPU负载?

解决Quarkus服务单个实例CPU负载查询问题

核心逻辑

Quarkus暴露的base_cpu_processCpuLoad_percent本身是单实例维度的指标,不需要盲目用sum/max做聚合——这类操作会丢失instance标签(实例标识),自然看不到单个实例的数据。

正确查询语句

  • 查看指定服务的所有实例CPU负载
    直接查询指标并过滤job,保留instance标签:

    base_cpu_processCpuLoad_percent{job="servicename"}
    

    执行后会返回该服务下每个实例的实时CPU负载,每个实例对应一条独立数据。

  • 筛选全集群Top N高负载实例
    要找出CPU负载最高的前5个实例,需同时按job和instance分组聚合:

    topk(5, max(base_cpu_processCpuLoad_percent) by (job, instance))
    

    用max取每个实例的峰值,topk筛选前5,保留双标签能明确对应到具体服务和实例。

  • 结合Grafana变量动态查询
    若已配置$job仪表盘变量,用模糊匹配支持动态选择:

    base_cpu_processCpuLoad_percent{job=~"$job"}
    

    多选变量时,=~会自动匹配所有选中的服务,展示对应实例的CPU数据。

排查小贴士

  1. 先在Prometheus Expression页面执行base_cpu_processCpuLoad_percent,确认指标存在且带有job、instance标签
  2. 避免直接用sum聚合——它会把同服务下所有实例的CPU负载累加,丢失单实例维度
  3. 只按job做max聚合会抹掉instance标签,导致无法区分具体实例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:55:42