自动化数据采集与异常预警规则
适用于水利工程、环境监测、设备监控等传感器数据采集与告警场景。
规则文件内容
请复制以下内容,保存为 .cursor/rules/sensor-anomaly-monitoring.mdc:
markdown
---
description: 传感器数据采集、阈值判断与异常预警业务规则
globs: src/modules/monitoring/**, src/modules/sensors/**, src/modules/alarms/**
---
# 自动化数据采集与异常预警业务规则
## 1. 核心原则
- **先采集后判定**:先确保采集完整性,再做异常判断。
- **阈值 + 趋势双判定**:同时考虑绝对值越界与历史偏差。
- **告警分级**:warning/critical 分层,降低误报成本。
## 2. 采集规则
### 2.1 采集频率
- 实时监测:每 `5` 分钟
- 常规监测:每 `60` 分钟
- 日汇总:每日 `00:10`
### 2.2 存储策略
- 原始明细:保留 `1` 年
- 统计数据:保留 `10` 年
- 异常样本:长期保留
## 3. 异常判定规则
### 3.1 阈值越界
- 值不在 `normal_range[min, max]` 内,判为异常候选。
### 3.2 历史偏差
- 与历史同期均值比较,若偏差超过 `2 * std`,判为异常趋势。
```ts
interface AlarmResult {
isAbnormal: boolean;
level: 'normal' | 'warning' | 'critical';
reason: string;
}
function thresholdAlarm(value: number, min: number, max: number): AlarmResult {
if (value >= min && value <= max) {
return { isAbnormal: false, level: 'normal', reason: 'in_range' };
}
return { isAbnormal: true, level: 'warning', reason: 'out_of_range' };
}4. 告警升级规则
- 连续 3 次
warning自动升级为critical - 单次严重越界(超过边界 20%)直接
critical critical需触发实时通知与处置工单
5. 数据质量规则
null值、负值(不合理参数)或重复时间戳视为脏数据- 脏数据不参与告警判断,但必须写入数据质量日志
- 单设备连续缺失
> 3个采样周期,触发设备离线告警
6. 数据模型约束
sensor_readings必须包含:sensor_id,parameter_type,value,sampled_at,quality_flagalarm_rules必须包含:parameter_type,normal_min,normal_max,warning_threshold,critical_thresholdalarm_events必须包含:sensor_id,level,reason,occurred_at,resolved_at
7. 实施注意事项
- 采集与告警解耦,防止告警逻辑阻塞采集链路。
- 时序查询建议按
sensor_id + sampled_at建索引。 - 告警抑制窗口建议 5~10 分钟,避免抖动告警。
## 适用场景
- 水利工程监测
- 环境与能耗监测
- 工业设备状态监控
