Skip to content

[PRD] AIoT 告警规则能力增强——多条件组合、生命周期与分组支持 #13

@ronger-x

Description

@ronger-x

[PRD] AIoT 告警规则能力增强——多条件组合、生命周期与分组支持

子仓库实现 Issue

仓库 Issue 说明
rymcu/mortise-aiot #20 条件模型、评估器、生命周期、设备分组、测试
rymcu/admin-aiot #6 告警规则表单与管理 UI 扩展

问题陈述

当前 Mortise AIoT 的 AlertRule 已经具备基本的阈值告警能力,但规则表达能力仍明显偏弱,难以支撑更复杂的工业与运维场景。

从用户视角看,主要问题有:

  1. 当前告警规则主要还是单阈值规则,无法表达多条件组合。
  2. 告警规则缺少生效期、暂停、失效等生命周期语义。
  3. 告警规则难以直接作用于设备分组,导致批量配置成本高。
  4. 规则域本身还不够成熟,如果现在就直接做 AlertRule → Scene 迁移工具,会把表达能力不足的问题转移到自动化域中。

这意味着告警规则虽然已经“能触发”,但还没有达到“可编排、可批量、可运营”的成熟度。

解决方案

围绕现有 AlertRule 能力补齐一轮“规则增强”:

  1. 支持多条件组合(AND / OR)。
  2. 增加告警规则生命周期语义,例如生效期、暂停和失效。
  3. 支持设备分组应用规则。
  4. 增加时间窗口聚合与基础抑制能力,减少瞬时抖动误报。
  5. 扩展管理端表单与规则管理体验。

本期目标不是直接做迁移工具,而是先把告警域补到足够成熟,再决定与自动化的进一步融合方式。

用户故事

  1. 作为运维管理员,我希望配置多条件告警规则,以便减少单指标误报。
  2. 作为运维管理员,我希望规则只在特定时间段生效,以便贴合实际值守场景。
  3. 作为运维管理员,我希望把规则应用到设备分组,而不是逐台配置。
  4. 作为运维管理员,我希望支持时间窗口聚合,例如“5 分钟内连续 3 次异常才告警”。
  5. 作为技术支持,我希望告警规则和自动化场景的边界清晰,便于排障。
  6. 作为产品经理,我希望先把告警规则补成熟,再考虑是否提供迁移到自动化的工具。

实现决策

一、模块范围

  • mortise-aiot-domain:扩展条件模型和生命周期字段。
  • mortise-aiot-application:实现规则评估器、时间窗口和分组匹配逻辑。
  • mortise-aiot-admin:扩展创建 / 编辑 DTO 和管理接口。
  • admin-aiot:扩展告警规则表单与管理页面。

二、条件增强策略

  • 从单阈值规则扩展到多条件组合。
  • 兼容现有规则格式,避免破坏已上线规则。
  • 多条件组合优先支持 AND / OR,不在本期引入复杂表达式语言。

三、生命周期与分组

  • 增加规则生效期、暂停和失效语义。
  • 支持与设备分组联动,降低批量配置成本。

四、与自动化的边界

  • 继续保留告警事件作为自动化的事件源。
  • 本期不直接做迁移工具,只明确边界和兼容方向。

测试决策

  • 后端覆盖多条件、生命周期、分组和时间窗口聚合。
  • 前端覆盖规则表单、条件组合编辑、生命周期配置和错误提示。
  • 至少保留一条端到端链路:设备遥测触发复合规则 → 告警事件产生 → 管理端可见。

垂直切片拆分

切片 1:多条件规则模型与评估器

覆盖的用户故事:1

验收标准

  • 支持多条件组合。
  • 兼容现有单阈值规则。

切片 2:生命周期与设备分组

覆盖的用户故事:2、3

验收标准

  • 支持生效期、暂停和分组应用。
  • 分组变化后规则作用范围正确。

切片 3:时间窗口聚合与基础抑制

覆盖的用户故事:4

验收标准

  • 支持简单聚合条件和重复告警抑制。

切片 4:管理端表单与联动边界

覆盖的用户故事:5、6

验收标准

  • 告警规则表单支持新字段与多条件编辑。
  • 明确与自动化的联动边界,不引入迁移工具。

范围外

  • AlertRule → Scene 自动迁移工具
  • 告警大盘 / BI 统计
  • 机器学习异常检测
  • 多渠道通知体系重构

补充说明

这是跨仓库需求,提交后请保留本 PRD Issue 作为 Parent PRD,子仓库实现 Issue 统一引用本 Issue。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions