首页 / Java 平台(cloud-java) / alarm 告警

职责概览

告警模块 独立端口 48101 / gRPC 49101,管理告警规则、规则选项、规则模板与告警记录;并通过 gRPC AlarmRuleService 向外部(Go alertsvr)提供设备启用的规则查询。

接口清单

Controller说明
AdminAlarmRuleControllerAlarmRuleOptionControllerAlarmRuleTemplateControllerAlarmRecordController规则、规则选项、模板与记录管理
AppAppAlarmRuleControllerAppAlarmRuleOptionControllerAppAlarmRuleTemplateControllerAppAlarmRecordController用户侧规则配置、模板选择与告警查看

规则模型与执行

规则组成

元素说明
触发器trigger_type(沿用 alarm_condition_type 字典)+ trigger_operatoralarm_operator)+ trigger_config_json
过滤器filter_logicalarm_filter_logic)+ 启用的 AlarmRuleFilter 列表
模板规则模板(App 快速配置)
记录命中后的告警记录与处理状态

gRPC 契约(供 Go 执行侧)

service AlarmRuleService {
  rpc GetEnabledRulesByDeviceName(GetEnabledRulesByDeviceNameRequest)
      returns (GetEnabledRulesByDeviceNameResponse);
}
  • 入参:device_name(设备名)+ product_key(上下文,服务端暂不使用)
  • 出参:设备当前启用的规则列表(嵌套过滤器),隐藏通知配置、级别、状态等内部字段
  • 服务端返回时间戳,便于执行侧判断缓存时效

执行链路

  1. Java alarm 维护规则配置(MySQL alarm_rule / alarm_rule_filter
  2. Go alertsvr 通过 gRPC 拉取设备启用规则并构建本地规则索引缓存
  3. 设备数据到达 → alertsvr 评估规则(状态缓存去重)→ 命中后发布告警事件
  4. Java 侧消费告警事件落 alarm_record,并联动 notify 发送通知
规则配置变更后需同步失效 Go 侧缓存;NATS 消费需检查 Stream 配置,避免事件丢失或重复消费。

数据与维护注意

核心表:alarm_*(5 张):规则、过滤器、模板、记录及选项。

  • 规则与过滤器是"配置面",告警记录是"事实面",两者不得混用。
  • 告警级别、通知配置等内部字段不对外暴露(gRPC 消息已裁剪)。