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

如何用PromQL运算符实现带条件逻辑的new_uptime记录规则?

实现Prometheus条件记录规则的方案

核心记录规则

你要的逻辑可以通过Prometheus的max()函数结合基础数学运算实现,完整的记录规则如下:

groups:
- name: custom_metrics
  rules:
  - record: new_uptime
    expr: uptime - max(util - 100, 0)

逻辑拆解

这个表达式的运作完全贴合你的需求:

  • 当util ≤ 100时,util - 100的结果小于等于0,max()函数会返回0,最终new_uptime = uptime - 0 = uptime
  • 当util > 100时,util - 100得到正数,max()直接返回这个值,最终new_uptime = uptime - (util - 100)

额外注意点

  • 如果uptime和util的标签集不完全一致,需要用on()或ignoring()指定匹配的标签,比如只按instance标签匹配:
    uptime - max(util - 100, 0) on(instance)
    
  • 可以先在Prometheus的表达式浏览器里测试这个公式,代入不同的util值验证结果是否符合预期,再添加到记录规则中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:34:56