目录

SOMA-Trace++

面向 openKylin/Linux 的 eBPF 系统异常观测、根因定位、故障传播分析和提前预警平台。覆盖 CPU/调度、I/O、内存、锁竞争和系统调用热点五类赛题异常。

核心模块

  • collectors.py:psutil、/proc、journal、dmesg 基线采集。
  • ebpf.py:syscall latency、off-CPU、块 I/O、TCP 重传只读聚合探针。
  • diagnoser.py:确定性异常识别和进程/资源对象定位。
  • topology.py:主机—进程—CPU—内存—块设备—调度器拓扑。
  • causal.py / propagation.py:时序因果评分和完整故障传播链。
  • predictor.py:基于 Theil–Sen 趋势的在线故障预警。
  • llm_rca.py:证据驱动的 LLM 假设、探针选择和根因重排。
  • public_rca.py:Antarex、AIOps Challenge 2020、DejaVu 统一评测契约。
  • audit.py:SHA-256 哈希链审计。
  • web.py:性能监控、问答、关键证据、预警、诊断和传播链页面。

安装与测试

python3 -m pip install --user -r requirements.txt
python3 -m pip install --user -r requirements-dev.txt
PYTHONPATH=. python3 -m pytest -q

基础诊断

python3 -m somatrace.cli snapshot \
  --duration 5 --deep --output out/snapshot.json

python3 -m somatrace.cli analyze \
  --input out/snapshot.json \
  --output out/enhanced-analysis.json

证据驱动 LLM 主动下钻

LLM 不只是生成报告,而是提出受约束的根因假设、选择能够区分候选的只读 eBPF 探针,并在取得新证据后重新排序根因。

export SOMATRACE_LLM_API_KEY='<key>'
export SOMATRACE_LLM_BASE_URL='https://api.deepseek.com'
export SOMATRACE_LLM_MODEL='deepseek-chat'

python3 -m somatrace.cli analyze \
  --input out/snapshot.json \
  --llm-rca \
  --active-probing \
  --output out/evidence-driven-analysis.json

LLM 只能引用已存在的 candidate_idevidence_id,并只能请求 syscall_latencyoffcpublock_iotcp_retransmit 四类固定只读探针。无证据假设不会进入最终排名。

公开 RCA 评测

python scripts/run_public_rca_benchmark.py prepare \
  --dataset aiops-challenge-2020-linux-subset \
  --data-root /data/aiops2020 \
  --output out/aiops2020-os-cases.json

python scripts/run_public_rca_benchmark.py score \
  --cases out/aiops2020-os-cases.json \
  --predictions out/soma-predictions.jsonl \
  --output out/aiops2020-score.json

统一评分输出 Hit@1/3/5、All-roots@1/3/5、MRR、MAR、故障类型 Macro-F1 和预测覆盖率。

Web 服务

PYTHONPATH=. python3 -m somatrace.web

默认地址为 http://127.0.0.1:8092

评测与设计文档

关于
8.3 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号