新功能
- AI 诊断 5 项上下文能力:基线(Welford 在线统计)、趋势序列、跨模块关联、判定规则、时间戳定位
- AI 诊断双模式切换:JSON 文件读取 / SQLite 历史查询,
--source参数控制 - 基线自适应判定:双阈值 OR 语义(固定阈值 + 历史均值+z*σ),覆盖 CPU/IO/Mem/Lock/Syscall 全部 5 个模块
- correlate 规则引擎加指标条件谓词(
key>N / key<N / key>=N / key<=N),subtype 模糊关键词匹配 - 全部阈值(CPU/IO/cswitch/sched_delay/busyloop/stack_conc/min_samples 等)移至 eebpf.conf 可配置
- AI 诊断费用配置化,定价移至 api_config.json
Bug 修复
- lock 模块自包含 sched 追踪,不再加载 cpu_anomaly skeleton,消除 ARM64 双 skeleton libbpf destroy 段错误(出错原因可能不是这个,是↓这项,不确定)
- 修复 reset_map 用
unsigned int(4 字节) 做 key 遍历struct lock_futex_key(16 字节) map 导致栈溢出段错误 - 修复 bench.sh main() 调用在函数定义之前导致脚本无输出的问题
- 修复 .gitignore swp 文件被
!docs/**通配规则覆盖的问题
重构
- 抽 bpf_shared.h 消除 BPF 内核态与用户态结构体定义重复
- storage.c 改用 SQLite JSON1 内置函数替代手写 JSON 解析
- 抽 classify_cpu_anomaly 统一文本/JSON 双输出路径的判定逻辑
- 抽 storage_check_baseline_anomaly 统一 5 模块基线阈值判定
- 代码清理:修复 CMD_FLAGS 拼写、合并 wakeup 重复代码、统一存储长文本字段命名常量
脚本
- setup.sh 加 correlate/history/baseline smoke 测试
- ai_check_env.sh 加 db_loader.py 导入检查与 SQLite 数据库路径检测
- kernel-matrix 冒烟测试加 verbose 诊断输出
- Makefile install-ai 目标补全 db_loader.py 安装
Full Changelog: v0.3.0...v0.4.0