release: finalize competition submission package
EviTrace 面向 Linux / openKylin 系统异常诊断场景,将故障复现、eBPF 内核证据采集、多源时序证据构建、Top-K 根因分析、主动验证、证据图和诊断报告串联为一条可运行、可验证、可回溯的系统诊断链路。
核心流程:
FaultBench → eBPF Collector → Schema V2 → Temporal Evidence Builder → Top-K RCA → Active Verification → Evidence Graph → Diagnosis Report → Studio
传统系统监控工具通常能够回答“哪个指标发生了异常”,但在多个异常同时出现时,很难进一步回答:
EviTrace 围绕这些问题构建了一套基于 eBPF 的证据驱动诊断框架。
系统支持 CPU 饱和、I/O 抖动、内存压力、锁竞争和系统调用热点等典型异常,并进一步面向 CPU+Syscall、I/O+Memory、CPU+Lock 等复合故障进行 Top-K 根因恢复和主动验证。
EviTrace 主要面向以下场景:
EviTrace 当前具备以下能力:
单一 Top-1 RCA 在复合故障中容易遗漏第二根因。
EviTrace 保留多个高可信根因候选,通过 Top-K RCA 同时恢复复合故障中的多个原因。
正式消融实验结果:
结果表明,在当前三个正式复合故障场景中,Top-K 机制能够恢复 Top-1 模式遗漏的第二根因。
EviTrace 不直接把 RCA 排名作为最终结论。
系统首先综合 eBPF、系统状态和运行时证据形成根因候选,再通过 Active Verification 对候选根因执行进一步证据验证,将“候选假设”转化为“已验证诊断结论”。
三个正式复合故障场景中的 6 个 Top-2 根因候选均获得 CONFIRMED 状态。
多源证据消融结果:
该结果说明,在当前复合故障实验中,多源证据对完整恢复多个根因具有重要作用。
持续开启深度 eBPF 探针可能带来额外资源开销。
EviTrace 构建状态机:
NORMAL → SUSPECT → DEEP_TRACE → VERIFY → COOLDOWN → NORMAL
仅在异常证据达到触发条件后进入 Deep Trace,并在验证结束后退出深度观测状态。
正式实验中:
Deep Trace phase fraction 表示控制器层面的深度观测阶段占比,不等价于整个系统的总开销比例。
总体诊断链路:
FaultBench Workload ↓ eBPF Collector ↓ Schema V2 ↓ Temporal Evidence Builder ↓ Top-K RCA ↓ Active Verifier ↓ Evidence Graph ↓ JSON / Markdown Report ↓ Studio Visualization
核心源码位于:
src/
项目正式覆盖以下五类异常:
五场景正式质量门均已通过。
最终正式复合故障包括:
三个正式场景均成功生成 Top-2 根因并完成主动验证。
六个候选根因均获得 CONFIRMED:
Active Verification 用于形成新的验证证据和诊断闭环,不将其表述为 RCA 准确率提升。
每种复合故障重复运行 5 次,共 15 次正式鲁棒性实验。
总体 Dual-confirm success rate 为:
93.33%
其中一次 CPU+Syscall 运行中的第二候选处于阈值附近,为 PROBABLE,而不是候选缺失。
正式优化后的复合故障端到端延迟:
最终三个场景均控制在约 1.35 s 内。
最终优化主要针对 Pipeline tail 和 event materialization,不将其描述为 RCA 算法本身的单独加速。
Process-tree RSS 正式实验:
Adaptive 相比 Always-on:
FIO 正式实验比较的是 Always-on Observation 与 Baseline,而不是 Adaptive FIO。
Always-on 相比 Baseline:
Ground Truth 只用于离线评价,不参与:
正式复合故障结果记录:
ground_truth_used = false
ground-truth expected profiles 位于:
src/evaluation/ground_truth/
相关文件仅由离线 evaluation 使用。
项目最终提交结构:
EviTrace/ ├── README.md ├── src/ │ ├── agent/ │ ├── backend/ │ ├── collector/ │ ├── config/ │ ├── controller/ │ ├── diagnosis/ │ ├── ebpf/ │ ├── evaluation/ │ ├── experiments/ │ ├── frontend/ │ ├── graph/ │ ├── rca/ │ ├── scripts/ │ ├── verifier/ │ └── requirements.txt ├── tests/ │ ├── final-data/ │ ├── figures/ │ └── verification/ ├── demo/ │ ├── README.md │ ├── run_demo.sh │ ├── verify_demo.sh │ └── sample_output/ ├── docs/ │ ├── 项目说明书.pdf │ ├── 项目创新说明.pdf │ ├── 成员分工及主要贡献说明.pdf │ └── 人工智能及第三方工具使用说明.pdf ├── presentation/ │ ├── 决赛现场演示PPT.pptx │ └── 决赛演示视频.mp4 └── 作品原创承诺书.pdf
项目正式验证环境:
说明:
src/requirements.txt
EviTrace 核心诊断链路以 Python、Bash 和 eBPF/bpftrace 脚本为主,无需额外的本地编译过程。完成运行依赖安装后即可执行核心诊断与测试脚本;Studio 前端由 Node.js / npm 工具链构建和运行。
在项目根目录执行:
python3 -m venv .venv source .venv/bin/activate pip install -r src/requirements.txt
可通过以下命令检查关键运行环境:
python3 –version bpftrace –version fio –version node –version npm –version stress-ng –version
EviTrace 核心 Python 模块无需单独编译,完成依赖安装后即可通过 src/scripts/ 中的正式入口脚本运行。Studio 的启动入口见第 19 节。
src/scripts/
最快的项目验证方式:
bash demo/run_demo.sh
该命令不需要重新注入故障,会展示并验证随项目提交的冻结正式样例。
正常情况下最终显示:
DEMO VERIFICATION: PASS
实时复现:
sudo bash demo/run_demo.sh –live
五场景正式质量门:
bash src/scripts/verify_five_scenario_formal_gate.sh
Adaptive Final Gate:
bash src/scripts/verify_adaptive_final_gate.sh
Performance Impact Gate:
bash src/scripts/verify_performance_impact_gate.sh
主要脚本位于:
包括:
实时 eBPF 运行时根据环境需要使用 root 权限。
Adaptive Controller:
src/controller/adaptive_controller.py
外部 I/O Controller:
src/controller/adaptive_external_io_controller.py
主要正式脚本:
src/scripts/run_adaptive_evitrace.sh src/scripts/run_adaptive_overhead_benchmark.sh src/scripts/run_adaptive_residency_experiment.sh
Studio 后端位于:
src/backend/
前端位于:
src/frontend/
启动:
bash src/scripts/start_evitrace_studio.sh
默认:
停止:
bash src/scripts/stop_evitrace_studio.sh
冻结后的最终数据:
tests/final-data/
其中包含:
数据文件配套 SHA256SUMS,可进行完整性校验:
cd tests/final-data sha256sum -c SHA256SUMS cd ../..
最终图表:
tests/figures/
包含 PNG、SVG 以及可重新生成图表的:
tests/figures/generate_final_figures.py
测试材料统一位于:
tests/
需求覆盖说明:
tests/verification/requirement_coverage.md
最终冻结实验数据:
最终实验图:
主要验证入口:
bash src/scripts/verify_five_scenario_formal_gate.sh bash src/scripts/verify_adaptive_final_gate.sh bash src/scripts/verify_performance_impact_gate.sh bash demo/verify_demo.sh
评审人员可先运行 bash demo/run_demo.sh 查看冻结正式样例,再使用上述质量门和校验命令复核关键功能与实验结果。
冻结 Demo 包含:
demo/sample_output/events/ demo/sample_output/diagnosis/ demo/sample_output/evidence_graph/ demo/sample_output/reports/ demo/sample_output/run_summary.json
运行:
bash demo/verify_demo.sh
即可自动验证关键产物及 Ground Truth 隔离状态。
需要特别说明:
PROBABLE
EviTrace 已形成从故障复现、内核证据采集、Top-K 根因分析、主动验证到证据图和报告输出的完整系统异常诊断闭环。
最终正式结果包括:
EviTrace 的目标不是只告诉用户“系统发生了异常”,而是提供:
发现异常 → 保留多个根因候选 → 主动验证候选 → 构建证据链 → 输出可复核诊断结论
从而形成完整、可解释、可验证的系统根因分析闭环。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
EviTrace:基于 eBPF 多源证据融合与主动验证的复合故障多根因诊断系统
EviTrace 面向 Linux / openKylin 系统异常诊断场景,将故障复现、eBPF 内核证据采集、多源时序证据构建、Top-K 根因分析、主动验证、证据图和诊断报告串联为一条可运行、可验证、可回溯的系统诊断链路。
核心流程:
FaultBench → eBPF Collector → Schema V2 → Temporal Evidence Builder → Top-K RCA → Active Verification → Evidence Graph → Diagnosis Report → Studio
1. 项目简介
传统系统监控工具通常能够回答“哪个指标发生了异常”,但在多个异常同时出现时,很难进一步回答:
EviTrace 围绕这些问题构建了一套基于 eBPF 的证据驱动诊断框架。
系统支持 CPU 饱和、I/O 抖动、内存压力、锁竞争和系统调用热点等典型异常,并进一步面向 CPU+Syscall、I/O+Memory、CPU+Lock 等复合故障进行 Top-K 根因恢复和主动验证。
1.1 应用场景
EviTrace 主要面向以下场景:
2. 核心能力
EviTrace 当前具备以下能力:
3. 三项核心创新
3.1 面向复合故障的 Top-K 多根因诊断
单一 Top-1 RCA 在复合故障中容易遗漏第二根因。
EviTrace 保留多个高可信根因候选,通过 Top-K RCA 同时恢复复合故障中的多个原因。
正式消融实验结果:
结果表明,在当前三个正式复合故障场景中,Top-K 机制能够恢复 Top-1 模式遗漏的第二根因。
3.2 多源时序证据融合与主动验证闭环
EviTrace 不直接把 RCA 排名作为最终结论。
系统首先综合 eBPF、系统状态和运行时证据形成根因候选,再通过 Active Verification 对候选根因执行进一步证据验证,将“候选假设”转化为“已验证诊断结论”。
三个正式复合故障场景中的 6 个 Top-2 根因候选均获得 CONFIRMED 状态。
多源证据消融结果:
该结果说明,在当前复合故障实验中,多源证据对完整恢复多个根因具有重要作用。
3.3 Adaptive Observation 按需深度观测
持续开启深度 eBPF 探针可能带来额外资源开销。
EviTrace 构建状态机:
NORMAL → SUSPECT → DEEP_TRACE → VERIFY → COOLDOWN → NORMAL
仅在异常证据达到触发条件后进入 Deep Trace,并在验证结束后退出深度观测状态。
正式实验中:
Deep Trace phase fraction 表示控制器层面的深度观测阶段占比,不等价于整个系统的总开销比例。
4. 系统架构
总体诊断链路:
FaultBench Workload ↓ eBPF Collector ↓ Schema V2 ↓ Temporal Evidence Builder ↓ Top-K RCA ↓ Active Verifier ↓ Evidence Graph ↓ JSON / Markdown Report ↓ Studio Visualization
核心源码位于:
src/
5. 支持的异常场景
5.1 单故障
项目正式覆盖以下五类异常:
五场景正式质量门均已通过。
5.2 复合故障
最终正式复合故障包括:
三个正式场景均成功生成 Top-2 根因并完成主动验证。
6. 复合故障正式结果
6.1 RCA 得分
6.2 Active Verification
六个候选根因均获得 CONFIRMED:
Active Verification 用于形成新的验证证据和诊断闭环,不将其表述为 RCA 准确率提升。
7. 鲁棒性实验
每种复合故障重复运行 5 次,共 15 次正式鲁棒性实验。
总体 Dual-confirm success rate 为:
93.33%
其中一次 CPU+Syscall 运行中的第二候选处于阈值附近,为 PROBABLE,而不是候选缺失。
8. 最终诊断延迟
正式优化后的复合故障端到端延迟:
最终三个场景均控制在约 1.35 s 内。
9. Pipeline Tail-Latency Optimization
最终优化主要针对 Pipeline tail 和 event materialization,不将其描述为 RCA 算法本身的单独加速。
10. 性能影响
10.1 RSS
Process-tree RSS 正式实验:
Adaptive 相比 Always-on:
10.2 FIO
FIO 正式实验比较的是 Always-on Observation 与 Baseline,而不是 Adaptive FIO。
Always-on 相比 Baseline:
11. Ground Truth 隔离
Ground Truth 只用于离线评价,不参与:
正式复合故障结果记录:
ground_truth_used = false
ground-truth expected profiles 位于:
src/evaluation/ground_truth/
相关文件仅由离线 evaluation 使用。
12. 项目目录
项目最终提交结构:
EviTrace/ ├── README.md ├── src/ │ ├── agent/ │ ├── backend/ │ ├── collector/ │ ├── config/ │ ├── controller/ │ ├── diagnosis/ │ ├── ebpf/ │ ├── evaluation/ │ ├── experiments/ │ ├── frontend/ │ ├── graph/ │ ├── rca/ │ ├── scripts/ │ ├── verifier/ │ └── requirements.txt ├── tests/ │ ├── final-data/ │ ├── figures/ │ └── verification/ ├── demo/ │ ├── README.md │ ├── run_demo.sh │ ├── verify_demo.sh │ └── sample_output/ ├── docs/ │ ├── 项目说明书.pdf │ ├── 项目创新说明.pdf │ ├── 成员分工及主要贡献说明.pdf │ └── 人工智能及第三方工具使用说明.pdf ├── presentation/ │ ├── 决赛现场演示PPT.pptx │ └── 决赛演示视频.mp4 └── 作品原创承诺书.pdf
13. 系统环境与依赖要求
项目正式验证环境:
说明:
src/requirements.txt安装依赖;14. 构建、安装与环境初始化
EviTrace 核心诊断链路以 Python、Bash 和 eBPF/bpftrace 脚本为主,无需额外的本地编译过程。完成运行依赖安装后即可执行核心诊断与测试脚本;Studio 前端由 Node.js / npm 工具链构建和运行。
在项目根目录执行:
python3 -m venv .venv source .venv/bin/activate pip install -r src/requirements.txt
可通过以下命令检查关键运行环境:
python3 –version bpftrace –version fio –version node –version npm –version stress-ng –version
EviTrace 核心 Python 模块无需单独编译,完成依赖安装后即可通过
src/scripts/中的正式入口脚本运行。Studio 的启动入口见第 19 节。15. 一键 Demo
最快的项目验证方式:
bash demo/run_demo.sh
该命令不需要重新注入故障,会展示并验证随项目提交的冻结正式样例。
正常情况下最终显示:
DEMO VERIFICATION: PASS
实时复现:
sudo bash demo/run_demo.sh –live
16. 正式质量门
五场景正式质量门:
bash src/scripts/verify_five_scenario_formal_gate.sh
Adaptive Final Gate:
bash src/scripts/verify_adaptive_final_gate.sh
Performance Impact Gate:
bash src/scripts/verify_performance_impact_gate.sh
17. 单故障运行入口
主要脚本位于:
src/scripts/
包括:
实时 eBPF 运行时根据环境需要使用 root 权限。
18. Adaptive Observation
Adaptive Controller:
src/controller/adaptive_controller.py
外部 I/O Controller:
src/controller/adaptive_external_io_controller.py
主要正式脚本:
src/scripts/run_adaptive_evitrace.sh src/scripts/run_adaptive_overhead_benchmark.sh src/scripts/run_adaptive_residency_experiment.sh
19. Studio
Studio 后端位于:
src/backend/
前端位于:
src/frontend/
启动:
bash src/scripts/start_evitrace_studio.sh
默认:
停止:
bash src/scripts/stop_evitrace_studio.sh
20. 正式数据与图表
冻结后的最终数据:
tests/final-data/
其中包含:
数据文件配套 SHA256SUMS,可进行完整性校验:
cd tests/final-data sha256sum -c SHA256SUMS cd ../..
最终图表:
tests/figures/
包含 PNG、SVG 以及可重新生成图表的:
tests/figures/generate_final_figures.py
21. 测试与验证材料
测试材料统一位于:
tests/
需求覆盖说明:
tests/verification/requirement_coverage.md
最终冻结实验数据:
tests/final-data/
最终实验图:
tests/figures/
主要验证入口:
bash src/scripts/verify_five_scenario_formal_gate.sh bash src/scripts/verify_adaptive_final_gate.sh bash src/scripts/verify_performance_impact_gate.sh bash demo/verify_demo.sh
评审人员可先运行
bash demo/run_demo.sh查看冻结正式样例,再使用上述质量门和校验命令复核关键功能与实验结果。22. Demo 输出
冻结 Demo 包含:
demo/sample_output/events/ demo/sample_output/diagnosis/ demo/sample_output/evidence_graph/ demo/sample_output/reports/ demo/sample_output/run_summary.json
运行:
bash demo/verify_demo.sh
即可自动验证关键产物及 Ground Truth 隔离状态。
23. 已知限制与设计边界
需要特别说明:
PROBABLE状态;当前正式鲁棒性实验中曾出现 1 次 CPU+Syscall 第二候选位于验证阈值附近的情况。24. 最终结果摘要
EviTrace 已形成从故障复现、内核证据采集、Top-K 根因分析、主动验证到证据图和报告输出的完整系统异常诊断闭环。
最终正式结果包括:
EviTrace 的目标不是只告诉用户“系统发生了异常”,而是提供:
发现异常 → 保留多个根因候选 → 主动验证候选 → 构建证据链 → 输出可复核诊断结论
从而形成完整、可解释、可验证的系统根因分析闭环。