首页 / Java 平台(cloud-java) / alarm 告警
alarm 告警
告警规则、过滤器、模板与记录,以及供外部查询规则的 gRPC 服务。
职责概览
告警模块 独立端口 48101 / gRPC 49101,管理告警规则、规则选项、规则模板与告警记录;并通过 gRPC AlarmRuleService 向外部(Go alertsvr)提供设备启用的规则查询。
接口清单
| 面 | Controller | 说明 |
|---|---|---|
| Admin | AlarmRuleController、AlarmRuleOptionController、AlarmRuleTemplateController、AlarmRecordController | 规则、规则选项、模板与记录管理 |
| App | AppAlarmRuleController、AppAlarmRuleOptionController、AppAlarmRuleTemplateController、AppAlarmRecordController | 用户侧规则配置、模板选择与告警查看 |
规则模型与执行
规则组成
| 元素 | 说明 |
|---|---|
| 触发器 | trigger_type(沿用 alarm_condition_type 字典)+ trigger_operator(alarm_operator)+ trigger_config_json |
| 过滤器 | filter_logic(alarm_filter_logic)+ 启用的 AlarmRuleFilter 列表 |
| 模板 | 规则模板(App 快速配置) |
| 记录 | 命中后的告警记录与处理状态 |
gRPC 契约(供 Go 执行侧)
service AlarmRuleService {
rpc GetEnabledRulesByDeviceName(GetEnabledRulesByDeviceNameRequest)
returns (GetEnabledRulesByDeviceNameResponse);
}
- 入参:
device_name(设备名)+product_key(上下文,服务端暂不使用) - 出参:设备当前启用的规则列表(嵌套过滤器),隐藏通知配置、级别、状态等内部字段
- 服务端返回时间戳,便于执行侧判断缓存时效
执行链路
- Java alarm 维护规则配置(MySQL
alarm_rule/alarm_rule_filter) - Go alertsvr 通过 gRPC 拉取设备启用规则并构建本地规则索引缓存
- 设备数据到达 → alertsvr 评估规则(状态缓存去重)→ 命中后发布告警事件
- Java 侧消费告警事件落
alarm_record,并联动 notify 发送通知
规则配置变更后需同步失效 Go 侧缓存;NATS 消费需检查 Stream 配置,避免事件丢失或重复消费。
数据与维护注意
核心表:alarm_*(5 张):规则、过滤器、模板、记录及选项。
- 规则与过滤器是"配置面",告警记录是"事实面",两者不得混用。
- 告警级别、通知配置等内部字段不对外暴露(gRPC 消息已裁剪)。