Skip to content

Releases: X2002w/eebpf

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 02:25

新功能

  • 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

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 25 Jul 20:52

主要更新

  • SQLite 历史数据存储,三表结构(reports/findings/snapshots),WAL 模式,每窗口独立写入
  • history 子命令:历史趋势时间线查询,支持 --sql 直接执行 SQL,--clear 清除数据
  • correlate 子命令:多维关联分析-不稳定, 后续可能抛弃,转而使用ai关联历史分析
  • 模块注册机制插件化,REGISTER_MODULE 宏替代硬编码子命令数组
  • RPM 打包支持(make rpm)与 CI 测试覆盖,release 同时发布 deb 和 rpm

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 17:13

主要更新

  • 覆盖 5 类异常检测:CPU、I/O、内存、锁竞争、系统调用热点
  • JSON + Markdown 双格式诊断报告,含统一 schema 与诊断结论渲染
  • AI 多模块联合诊断 (ai_analysis/),兼容 OpenAI 接口的任意后端
  • CI/CD 完整矩阵:x86_64 + ARM64,内核 6.1/6.6/6.12 全通过
  • deb 打包发布 + apt 安装/卸载
  • 配置文件支持 (eebpf.conf),阈值可调

Full Changelog: v0.1.0...v0.2.0