首页 / 业务功能与流程 / 告警全流程

流程总览

配置面(Java alarm):规则/过滤器/模板
        │ gRPC GetEnabledRulesByDeviceName
        ▼
执行面(Go alertsvr):规则索引缓存 → 事件评估(WHEN-THEN)→ 状态缓存去重
        │ NATS 事件
        ▼
分发面(Go eventsvr):RegisterRule / MatchEvent → 动作(push/log)
        ▼
事实面(Java):alarm_record 落库 → notify 消息任务 → wssvr / APNs / FCM → App

规则配置(Java)

  • 后台/App 通过 AlarmRuleControllerAppAlarmRuleController 配置规则(触发器 + 过滤器 + 模板)
  • 规则存储于 alarm_rule / alarm_rule_filter,字典值(条件类型、操作符、过滤逻辑)由 common 字典维护
  • 规则变更需同步失效 Go 侧缓存(见下)

规则拉取与缓存(Go)

  1. alertsvr 启动/周期调用 gRPC GetEnabledRulesByDeviceName 拉取设备启用规则
  2. ruleIndexCache 构建按设备/产品索引的本地规则缓存
  3. 规则变更后缓存失效重建,避免每次事件回源 Java

事件评估

组件职责
mq/consumer + workerPoolNATS 消费设备数据,并发处理 + 消费指标
alarmEvaluatorWHEN-THEN 规则评估(条件匹配 → 动作)
stateCache状态缓存:告警去重、冷却
pendingRules待处理规则队列(pending replay)

告警记录与通知

  1. eventsvr 匹配命中后发布告警事件(NATS/JetStream)
  2. Java alarm 消费事件落 alarm_record(校验订阅权益)
  3. notify 创建消息任务(站内信/推送),跟踪发送状态
  4. wssvr(实时位置通道)/ APNs / FCM 触达 App

四级事实状态机

层级事实状态示例
L1 规则命中alertsvr 评估结果MATCHED / SUPPRESSED(冷却去重)
L2 告警记录alarm_recordCREATED → PROCESSING → CONFIRMED / CLOSED
L3 消息任务notify 任务PENDING → SENDING → SUCCESS / FAILED / RETRY
L4 送达推送通道回执DELIVERED / UNREACHABLE
排查"告警未送达"时按 L1→L4 逐层核对;规则命中 ≠ 通知送达。