It is hoped that alert notification templates will support distinguishing between the current/recovery value and the value at the time of triggering.

Author: nameGJCreated Aug 10, 2026Updated Aug 11, 2026

背景

Nightingale v9.1.0 中,活动告警事件列表已经支持显示“触发时的值”,这个改进很有帮助。

但在告警通知模板和告警详情展示中,仍然希望能够区分以下几类值:

  • 触发告警时的值
  • 通知发送时的当前值
  • 告警恢复时的值

目前模板上下文里主要能使用:

TriggerValue
TriggerValues
TriggerValuesJson
暂未看到类似下面这样的字段:
CurrentValue
RecoverValue
LatestValue
因此在恢复通知中,如果模板把 TriggerValue 标记为“当前值”,就会造成误解。

示例
告警规则:

内存使用率 > 90
触发告警时:
TriggerValue = 90
随后指标已经恢复,但恢复通知里仍然只能渲染:
当前值:90
触发告警时的值:90
这两个值实际都来自同一个 TriggerValue 字段,容易让值班人员误以为当前值仍然异常
期望行为
希望 Nightingale 能在告警事件或通知模板上下文中提供更明确的字段,例如:
TriggerValue   // 触发告警时的值
RecoverValue   // 告警恢复时的值,如果可以获取
CurrentValue   // 通知发送时查询到的当前值,如果支持
或者至少在文档和内置模板中明确说明:
TriggerValue 始终表示触发告警时的值,包括恢复通知场景。
对运维人员来说,恢复通知里如果能明确展示:
触发告警时的值:90
恢复时的值:20
状态:已恢复
会比只展示 TriggerValue 更清晰,也能避免“已经恢复但当前值仍显示异常值”的误解。

可能的实现建议
可以考虑:

保留 TriggerValue 作为稳定的触发时值。
在恢复评估时,如果能够拿到具体数值,则写入 RecoverValue。
如果允许在通知发送时查询数据源,可增加 CurrentValue。
更新内置模板和文档,明确不同字段的语义。
如果通知发送时实时查询数据源成本较高,只提供 RecoverValue 也已经能解决大部分恢复通知的误解问题。