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

如何实现Prometheus中同标签Micrometer JMS指标的差值计算?

问题分析与解决办法

你遇到的查询无结果,核心有两个问题:

1. 指标名称笔误

你写的abs_payment_total是错误的,应该替换为实际的入队指标名jms_payment_queue_in_total。

2. 正确的标签匹配与查询写法

单个service_id的差值查询

修正指标名后,针对service_id=1050的正确查询是:

jms_payment_queue_in_total{service_id="1050"} - ignoring(success) jms_payment_queue_out_total{success="success", service_id="1050"}

这里的ignoring(success)是必须的——因为jms_payment_queue_out_total带有success标签,而jms_payment_queue_in_total没有,忽略该标签才能让两个指标按service_id匹配对齐。

所有共享service_id的差值查询

如果要计算所有存在对应service_id的入队、出队差值,不需要指定具体service_id,直接用:

jms_payment_queue_in_total - ignoring(success) jms_payment_queue_out_total{success="success"}

更合理的计数器处理方式

注意这两个指标都是counter类型(计数器),计数器值是单调递增的(除非服务重启重置),直接用原始值做差值的意义有限(比如出队数超过入队数会出现负数,或者重启后数值突变)。更推荐计算一段时间内的增量差值,比如统计5分钟内的入队增量减去出队增量:

increase(jms_payment_queue_in_total[5m]) - ignoring(success) increase(jms_payment_queue_out_total{success="success"}[5m])

可以根据实际需求调整时间窗口(比如[1m]、[10m])。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:55:21