feat(#52): 报警看板配置化(阈值/规则外置,PRD 5.5 告警面板配置化)
把 alarm_panel 组件的展示语义外置为模板配置资产,使「切换行业模板零改前端代码」
(PRD 5.5 验收口径)覆盖到告警面板:
- core/cockpit/alarm_config.py:AlarmPanelConfig 配置点
- severityColors(P0/P1/P2 三级 fg/bg/icon/border,覆盖主题默认告警色;
P0 fg 即驾驶舱红色告警 PRD 5.3 ③ 场景A)
- rulesSource / thresholdsSource(asset 资产路径 或 inline 内联规则,
阈值/规则外置 JSON,PRD line 152/171)
- showSop(PRD 场景A LLM 报警解释 + 值班长确认是否展开 SOP)
- requireAck / ackTimeoutS(高利害人工确认,PRD line 333;超时升级)
- muteLower / groupBy / sortBy / maxItems(静默下限 + 大屏展示策略)
- validate_alarm_config(聚合全部字段级错误,沿用 #50 风格)
- load_alarm_config(校验失败抛 AlarmConfigError 携带错误清单)
- render_alarm_panel_props(编译为 alarm_panel 组件 props,#51 渲染层合并即可)
- filter_alarms_by_mute(验证 muteLower 配置点真实驱动展示策略)
- core/cockpit/__init__.py:导出 #52 告警面板配置 API(#50/#51 合入后合并导出)
- templates/ti-cl4/dashboard/alarm_panel.ti.yaml:氯化车间/海绵钛告警面板配置资产
- core/cockpit/scripts/verify_alarm_config.py:验收脚本(4 能力点,exit 0)
- core/cockpit/tests/test_alarm_config.py:28 用例(校验/加载/渲染/过滤/负例)
- core/cockpit/README.md:模块说明与用法
零运行时依赖(仅标准库);与 #50/#51 解耦,不 import 未合入分支。
测试:python -m unittest discover -s tests -p test_alarm_config.py(28 OK)
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# 氯化车间/海绵钛驾驶舱 · 告警面板配置资产(iAOP-Template-Ti 一期)。
|
||||
#
|
||||
# 对齐 PRD 5.5「⑤ 配置化驾驶舱」+ 5.3 ③ 场景A(异常检测 → 驾驶舱红色告警 +
|
||||
# LLM 生成"原因+处置建议" → 值班长确认):把告警面板的「严重度配色 / 规则源 /
|
||||
# SOP 联动 / 确认与静默 / 分组排序」外置为模板配置(issue #52)。
|
||||
#
|
||||
# 切换到其他行业模板(如树脂)= 换一份本文件,告警面板前端代码零改动
|
||||
# (PRD 5.5 验收口径「切换模板零改码」覆盖到告警面板)。
|
||||
#
|
||||
# $schema 对应 core/cockpit/alarm_config.py 的 ALARM_CONFIG_SCHEMA_ID。
|
||||
$schema: iAOP-cockpit-alarm-panel-v1
|
||||
# severityColors:P0/P1/P2 三级展示配色(覆盖主题默认告警色)。
|
||||
# P0=红色(驾驶舱红色告警,PRD 场景A)、P1=黄色(加强监控)、P2=蓝色(提示)。
|
||||
severityColors:
|
||||
- severity: P0
|
||||
fg: "#ff3b30" # 红色前景(告警文本 / 图标)
|
||||
bg: "rgba(255,59,48,0.12)"
|
||||
icon: alert-octagon
|
||||
border: "#ff3b30"
|
||||
- severity: P1
|
||||
fg: "#f5a623" # 黄色
|
||||
bg: "rgba(245,166,35,0.12)"
|
||||
icon: alert-triangle
|
||||
border: "#f5a623"
|
||||
- severity: P2
|
||||
fg: "#3aa0ff" # 蓝色(提示)
|
||||
bg: "rgba(58,160,255,0.10)"
|
||||
icon: info
|
||||
# rulesSource:告警面板订阅哪份规则资产(阈值/规则外置)。
|
||||
# 指向 issue #72 落地的炉层杂质预警规则模板(templates/ti-cl4/impurity-forecast/
|
||||
# config/alert_rules.template.yaml,在其 feature 分支上推进;此处先按规划路径绑定)。
|
||||
rulesSource:
|
||||
kind: asset
|
||||
ref: ti-cl4/impurity-forecast/config/alert_rules.template.yaml
|
||||
# thresholdsSource:阈值可与规则同源,这里显式独立声明,便于配置台单独维护。
|
||||
thresholdsSource:
|
||||
kind: asset
|
||||
ref: ti-cl4/impurity-forecast/config/alert_rules.template.yaml
|
||||
# SOP 联动:在面板里展开处置 SOP(PRD 场景A:LLM 报警解释 + 值班长确认)。
|
||||
showSop: true
|
||||
# 关键告警强制人工确认(PRD line 333:高利害人工确认,不直接联动执行机构)。
|
||||
requireAck: true
|
||||
ackTimeoutS: 300 # 5 分钟未确认自动升级 severity
|
||||
# 静默下限:低于 P2 的不展示(Ti 一期 P0/P1/P2 全展示)。
|
||||
muteLower: P2
|
||||
# 分组 / 排序 / 最大条数:大屏展示策略外置。
|
||||
groupBy: severity
|
||||
sortBy: severity
|
||||
maxItems: 50
|
||||
Reference in New Issue
Block a user