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, 严重性分类, 事件序列分析, 事件检测, 云计算, 代码示例, 信号处理, 冷却抑制, 合成数据生成器, 告警系统, 复合事件检测, 学习项目, 异常检测, 数据分析, 数据管道, 无后门, 时间序列分析, 智能系统工程, 模块化设计, 汽车诊断, 汽车遥测, 系统工程, 自动化修复, 规则告警, 规则引擎, 车联网, 车载诊断, 软件工程, 运维监控, 逆向工具, 阈值检测