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

如何让Grafana Stat面板在指标超阈值或数据缺失时显示红色?

解决方案:合并两种异常场景的PromQL表达式

直接用absent就能完美解决你的问题,不用unless。核心思路是把「容器从未启动(无数据)」和「耗时过高」这两种情况,都转化为超过阈值T的数值,让Grafana的同一个阈值规则就能触发红色告警。

最终PromQL表达式

max(
  time() - container_last_seen{name="my_X_container_name"},
  absent(container_last_seen{name="my_X_container_name"}) * (T + 1)
)

逻辑解释

  1. 耗时过高场景:time() - container_last_seen{name="my_X_container_name"}会计算当前时间和容器最后上报时间的差值,当这个差值大于T时,直接满足阈值条件。
  2. 容器从未启动场景:absent(container_last_seen{name="my_X_container_name"})会在指标不存在时返回1,乘以T+1后结果必然大于T,刚好触发同一个阈值规则。
  3. 正常场景:容器正常运行时,差值≤T,max函数会取这个正常数值,不会触发红色。

Grafana面板配置

  1. 把上面的表达式替换到Stat面板的查询框中
  2. 进入「阈值」配置:
    • 添加一条规则,设置当值 > T时,颜色选为红色
    • 正常状态(值 ≤ T)可以设置为绿色或你需要的其他颜色

为什么不用unless?

unless是「左边有结果就返回左边,左边无结果才返回右边」的逻辑,但它没法直接把两种场景统一到同一个数值维度里。用absent的方式更直接,能把无数据的场景转化为明确的超阈值数值,适配Grafana的阈值判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:17:40