4. 哨兵告警系统架构:哨兵组件设计、告警触发流程、告警级别定义
哨兵告警系统是坏账率监控体系的核心执行层。它负责实时或准实时地采集回测结果、比对阈值、判定异常状态,并通过多级告警机制通知风控团队。一个健壮的哨兵架构需要具备低延迟检测、可配置规则和分级响应三大能力。
4.1 哨兵组件设计
哨兵系统采用微服务化的组件架构,各组件职责清晰、可独立扩展。核心组件包括以下五个模块:
| 组件名称 | 核心职责 | 关键指标 |
|---|---|---|
| 指标采集器 | 从回测引擎、数据库或消息队列中拉取坏账率、逾期率等关键指标 | 采集延迟 < 5s,采样频率 1min/次 |
| 规则引擎 | 加载阈值配置,执行逻辑判断(大于/小于/波动率/趋势) | 单规则判定耗时 < 10ms |
| 状态管理器 | 维护每个策略/分组的告警状态机(正常→预警→严重→恢复) | 状态转换延迟 < 100ms |
| 告警分发器 | 根据告警级别选择渠道(邮件/短信/企微/钉钉)并发送 | 分发成功率 > 99.9% |
| 审计日志 | 记录每次告警的触发原因、当前值、阈值、处理人及时间戳 | 日志写入 TPS > 1000 |
设计要点: 规则引擎与状态管理器应解耦。规则引擎只做“是否触发”的布尔判断,状态管理器负责“是否重复告警”和“级别升降”的时序逻辑,避免规则配置复杂化。
4.2 告警触发流程
告警触发流程遵循“采集→判定→状态转换→分发→归档”的闭环设计。每一步都包含防抖和去重逻辑,避免因瞬时波动导致告警风暴。
防抖机制: 规则引擎判定为异常后,不会立即触发告警,而是等待连续 N 个采样周期(默认 3 个)均满足条件才确认触发。这能有效过滤掉单次毛刺数据。
完整的触发流程包含以下 6 个步骤:
- 指标采集: 采集器按固定周期(如 1 分钟)从回测结果表或消息队列中拉取当前坏账率、逾期率、回收率等指标。
- 规则匹配: 规则引擎加载当前策略的阈值配置,执行比较运算。支持绝对值阈值、相对波动阈值、趋势斜率阈值三种模式。
- 防抖确认: 若规则匹配为异常,状态管理器启动防抖计数器。连续 N 次采样均异常,则进入“待触发”状态;否则计数器清零。
- 状态转换: 根据当前状态和异常严重程度,执行状态机转换(正常→预警、预警→严重、严重→恢复等)。
- 告警分发: 分发器根据告警级别选择对应渠道发送通知,并附带当前值、阈值、持续时长等上下文信息。
- 日志归档: 将本次告警的完整链路数据写入审计日志表,供事后复盘和阈值调优使用。
4.3 告警级别定义
告警级别决定了响应时效、通知渠道和升级策略。我们将告警划分为四个级别,每个级别对应不同的处理 SLA 和通知方式。
| 级别 | 名称 | 触发条件 | 通知渠道 | 响应 SLA |
|---|---|---|---|---|
| P0 | 严重告警 | 坏账率超过硬性上限阈值,且连续 3 个周期未回落 | 电话 + 短信 + 企微 @所有人 | 15 分钟内确认 |
| P1 | 预警告警 | 坏账率超过软性预警阈值,或波动率超过 2 倍标准差 | 企微 + 邮件 | 30 分钟内确认 |
| P2 | 提示告警 | 坏账率接近预警阈值(90%),或单日环比上升超过 5% | 邮件 + 看板标记 | 2 小时内确认 |
| P3 | 信息告警 | 策略回测完成、阈值配置变更、模型版本更新等事件 | 看板通知 | 无需确认 |
级别升级策略: 若 P1 告警在 30 分钟内未得到确认,系统自动升级为 P0 并触发电话通知。P2 告警若持续 2 小时未处理,自动升级为 P1。升级策略应在状态管理器中配置,避免人工干预延迟。