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 也已经能解决大部分恢复通知的误解问题。Source: ccfos/nightingale