friosluc/Diagnostic_log_analyzer
GitHub: friosluc/Diagnostic_log_analyzer
模块化 Python 汽车诊断日志分析系统,实现基于阈值的异常事件检测、复合事件识别和规则驱动的分级告警。
Stars: 0 | Forks: 0
# 诊断日志分析器
一个模块化的 Python 系统,用于分析时间序列遥测数据、检测异常信号事件,并生成带有严重性分类的基于规则的警报。
## 概述
本项目处理车辆遥测数据(例如 ENGINE_TEMP、RPM)并构建一个结构化的流程,以:
- 基于可配置的阈值检测异常信号事件
- 识别信号之间的关系(复合事件)
- 分析时间模式(事件序列)
- 计算指标和事件发生率
- 使用带有冷却抑制机制的可配置规则触发警报
- 将警报严重性分类(LOW / MEDIUM / HIGH)
- 将结构化结果导出为 JSON
## 系统架构
```
raw telemetry (CSV)
↓
parser.py → validates and loads data
↓
analysis.py → event detection, metrics, event rate, baseline
↓
alerts.py → rule-based alert engine (cooldown + severity)
↓
reporting.py → system summary + JSON export
↓
main.py → orchestrates the full pipeline
```
## 项目结构
```
diagnostic_log_analyzer/
│
├── config.py # Thresholds, alert rules, severity bounds
├── parser.py # CSV loader with validation
├── analysis.py # Event detection, metrics, event rate, baseline
├── alerts.py # Alert engine (rules, cooldown, severity)
├── reporting.py # Summary generation and JSON export
├── main.py # Pipeline orchestration
├── generate_log.py # Synthetic telemetry data generator
└── sample_log.csv # Sample input data
```
## 功能
### 事件检测
- 针对每个信号的基于阈值的检测(例如 `ENGINE_TEMP > 100`)
- 最短持续时间过滤以忽略噪声
- 每个事件的元数据:`max_value`、`avg_value`、`duration_s`、`samples`
### 复合事件
- 检测重叠的信号事件(例如,同时出现高温和高转速 → `OVERHEAT_UNDER_LOAD`)
### 时间分析
- 每分钟的事件发生率
- 滚动平均值
- 具有 3σ 异常阈值的统计基线
- 序列检测(在特定时间间隔内,事件 A 之后紧跟着发生事件 B)
### 警报引擎
- 通过 `config.py` 配置警报规则
- 滑动时间窗口事件计数
- 冷却抑制以避免警报泛洪
- 严重性分类:`LOW` / `MEDIUM` / `HIGH`
### 报告
- JSON 导出:事件、警报、系统摘要
- 每个信号的聚合指标
- 按严重性和事件类型划分的警报明细
## 示例输出
**警报:**
```
{
"alert": "OVERHEAT_UNDER_LOAD_FREQUENCY",
"event": "OVERHEAT_UNDER_LOAD",
"trigger_time": "2026-01-01T10:05:05",
"count_in_window": 2,
"window_minutes": 3,
"cooldown_minutes": 5,
"severity": "LOW"
}
```
**系统摘要:**
```
{
"total_rows": 1200,
"total_signals": 2,
"total_basic_events": 4,
"total_composite_events": 2,
"total_sequence_events": 0,
"total_alerts": 1,
"low_alerts": 1,
"medium_alerts": 0,
"high_alerts": 0,
"total_abnormal_duration_s": 74.0,
"most_active_signal": "ENGINE_TEMP"
}
```
## 配置
所有系统行为均通过 `config.py` 进行控制:
```
ENGINE_TEMP_THRESHOLD = 100
RPM_THRESHOLD = 2000
MIN_EVENT_DURATION_SECONDS = 2
LOW_MAX_DURATION = 15
MEDIUM_MAX_DURATION = 25
ALERT_RULES = [
{
"name": "OVERHEAT_UNDER_LOAD",
"event": "OVERHEAT_UNDER_LOAD",
"window_minutes": 3,
"min_count": 2,
"cooldown_minutes": 5
}
]
```
## 实践的核心概念
- 时间序列事件检测(阈值 + 持续时间过滤)
- 滑动窗口模式分析
- 带有冷却机制的基于规则的警报
- 统计基线(均值 + 3σ 阈值)
- 关注点分离的模块化系统设计
## 路线图
- [ ] 基于机器学习的异常检测(使用事件特征进行分类)
- [ ] 实时流处理支持
- [ ] 仪表板可视化
- [ ] 多信号相关性评分
## 作者信息
本项目是作为 Python、数据分析和智能系统自主学习路径的一部分而构建的。
开发过程在 AI 工具(ChatGPT、Claude)的辅助指导下进行,这些工具被用作导师和学习加速器——所有代码均由作者亲自编写、理解并反复迭代。
**学习路径重点:** 汽车诊断 · 数据驱动决策系统 · Python 分析流程
标签:CSV解析, Homebrew安装, IoT数据分析, JSON导出, Python, 严重性分类, 事件序列分析, 事件检测, 云计算, 代码示例, 信号处理, 冷却抑制, 合成数据生成器, 告警系统, 复合事件检测, 学习项目, 异常检测, 数据分析, 数据管道, 无后门, 时间序列分析, 智能系统工程, 模块化设计, 汽车诊断, 汽车遥测, 系统工程, 自动化修复, 规则告警, 规则引擎, 车联网, 车载诊断, 软件工程, 运维监控, 逆向工具, 阈值检测