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

如何对Prometheus相乘后的时间序列使用rate函数?(Grafana场景)

解决PromQL语法错误的正确写法

错误原因

PromQL的rate()函数仅支持直接接收带时间范围的指标选择器(即metric[range]形式的范围向量),不能对两个指标运算后的表达式直接添加时间范围,这就是触发语法错误的核心原因。

正确写法

利用PromQL的子查询特性,先完成两个指标的乘法运算,再将运算结果转换为范围向量供rate()处理:

1. 标签完全匹配时的基础写法

rate((mysql_global_status_wsrep_flow_control_paused * mysql_global_status_uptime_since_flush_status)[$__rate_interval:])
  • 子查询格式(expr)[range:]会先计算指标乘积在$__rate_interval时间范围内的瞬时值序列,生成合法的范围向量
  • 冒号后省略的采样间隔会默认使用Prometheus全局评估间隔

2. 标签不完全匹配时的写法

如果两个指标的标签集存在差异,需用on()或ignoring()指定匹配标签(比如按instance和job匹配):

rate((mysql_global_status_wsrep_flow_control_paused * on(instance, job) mysql_global_status_uptime_since_flush_status)[$__rate_interval:])

3. 更灵敏的瞬时变化率写法

若需要更灵敏的瞬时变化率,可将rate()替换为irate():

irate((mysql_global_status_wsrep_flow_control_paused * mysql_global_status_uptime_since_flush_status)[$__rate_interval:])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:10:13