自动化与运维 ✓ Microsoft · 官方 root-cause-analysistelemetry-analysisfailure-diagnosislog-analysistrace-analysiskpi-analysisbenchmarking

OpenRCA 软件故障根因分析

让大模型跨指标、链路与日志定位软件故障根因。

FollowAgents 评估 · FARS-2.1
不推荐
58/ 100 五分制 2.9 / 5
1 2 3 4 5 6
1信任安全8 / 29 · 1.4/5

README 说明了模型供应商配置、遥测数据位置、结果目录和评测文件流向,并由官方组织、论文引文及 MIT 版权信息提供清晰归属,因此来源归属满分。依赖均固定版本,且 SECURITY.md 提供正式漏洞报告渠道,但没有依赖审计、漏洞处置或升级策略。未见最小权限设计、操作前确认、沙箱、网络访问边界或回滚机制;API 密钥以明文 YAML 示例配置,自有隐私遥测虽被提及,却没有脱敏、保留、传输或日志保护说明。外部 API 调用及本地文件写入可从命令推知,但数据流并未完整描述。

2可靠稳定8 / 14 · 2.9/5

安装、数据布局、预测格式、评测、复现和重建说明总体一致,并明确 Python、存储、内存、时区和采样限制。依赖被精确固定,Python 版本也明确,但数据集依赖外部 Google Drive,未提供校验和、镜像或离线保障。FAQ 覆盖若干常见结果偏差,却没有展示代理运行时错误处理、重试、超时、部分失败或可操作的诊断消息。

3适用触发14 / 18 · 3.9/5

受众和场景界定充分:面向软件运维根因分析研究,覆盖 Telecom、Bank、Market、自定义代理及自有遥测重建。基准、RCA-agent、输入输出和禁止读取真值的评审约束较清楚,但模型能力、安全边界和不适用场景不完整。CLI 入口和参数具体,触发精度良好;环境方面给出 Python 版本、目录结构、资源下限及时区,但缺少操作系统、提供商兼容性、网络条件和更细的部署要求。

4规范维护12 / 18 · 3.3/5

README 按安装、评测、复现、重建、FAQ、引文和声明组织,命令及示例丰富,FAQ 尤其具体。命名大体稳定,但 dataset/datasets、record.csv/records.csv 及 TESTS 占位符会带来轻微歧义。已披露高资源需求、时区、采样和网络故障分析限制,但没有系统性的已知问题清单。MIT 许可证完整明确。未提供版本发布、标签或变更日志材料;官方 Microsoft 归属和安全响应路径明确,但没有列出具体维护者、维护节奏或一般问题升级路径。

5有效结果10 / 13 · 3.8/5

预测 JSON 结构、CSV 最低字段、故障排序规则、报告输出位置和完整命令示例使产物可直接用于评测,因此输出可用性充分。RCA-agent 通过 Python 检索和分析减少长上下文处理,体现了相对直接提示的增量价值,但给定材料没有比较实验细节。README 坦诚要求至少约 80GB 存储和 32GB 内存,并暗示外部模型 API 成本;仍缺少令牌、时间、费用和资源收益的量化。

6证据核验6 / 8 · 3.8/5

论文引文、固定模型名称、归档预测路径、明确命令、数据模式和许可证使主要陈述可追溯。README、LICENSE、SECURITY.md 和固定依赖表能交叉印证归属、许可、安装与治理信息,但没有论文正文、测试文件或结果表来交叉验证性能和可扩展性主张。文档通常区分基准、基线、示例模型和免责声明,不过“避免过长上下文”“可扩展”等表述在所给文件中缺乏直接证据,事实与推断分离尚非完整。

证据充分度: 评估于 2026年8月14日 审查版本 c1bd4af7f635
源码中未见的安全控制:最小权限约束、执行前用户确认、回滚或恢复路径
使用前请注意
  • API 密钥示例保存在明文 YAML 中;应避免提交该文件,并在使用真实遥测前确认密钥管理、日志脱敏和数据传输策略。
  • 运行会调用外部模型 API 并在本地创建 test 结果与监控文件,但材料未说明逐次确认、网络边界、保留策略或回滚方式。
  • 数据集来自外部 Google Drive,未给出校验和或镜像;下载后应独立验证完整性与来源。
  • 固定依赖版本不等于已完成安全审计;材料没有漏洞扫描结果、锁文件哈希或依赖更新政策。
  • 该项目是研究基准及基线,而非已证明适用于生产事故响应的自治代理;不要将论文定位或 Microsoft 归属当作运行安全与结果正确性的保证。
评估证据 [1][2][3][4][5]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

OpenRCA 是一个面向软件运行场景的根因分析基准,并提供 RCA-agent 作为基线实现。系统接收自然语言查询,分析 KPI 时间序列、依赖追踪图和半结构化日志,以确定故障发生时间、组件及原因。RCA-agent 使用 Python 检索和分析遥测数据,避免把全部数据直接塞入模型上下文。仓库提供数据集评测、论文结果复现以及从现有或私有遥测记录生成新任务的命令行入口。它在本地 Python 环境中运行,数据和结果均通过文件系统管理;模型调用则需要配置相应 API。

典型流程从 dataset/{SYSTEM} 下的 query.csvrecord.csv 以及按日期组织的 telemetry/logtelemetry/metrictelemetry/trace 开始,其中系统可为 Telecom、Bank 或 Market。RCA-agent 通过 Python 检索并分析这些遥测数据,再让模型推理根因。python -m rca.run_agent_standard --dataset ... 运行标准代理;run_baseline_balancedrun_baseline_oracle 可运行其他论文基线。预测以 CSV 保存,至少包含 prediction 字段;字段值是 JSON 风格字符串,按时间顺序列出每次故障的 root cause occurrence datetimeroot cause componentroot cause reasonpython -m main.evaluate 将预测文件与真值 query.csv 对照并生成报告 CSV。python -m main.generate 可依据 main/task_specification.json 和与 OpenRCA record.csv 一致的记录结构生成新查询任务。

  1. 研究大模型软件运维能力的团队,用统一数据和输出结构评测模型在多模态遥测上的根因定位表现。
  2. 开发故障诊断代理的工程师,在 Telecom、Bank 或 Market 数据集上运行 RCA-agent,并与 balanced 或 oracle 基线比较。
  3. 可观测性研究人员,需要联合分析 KPI、分布式追踪和日志,而非只依靠单一遥测来源。
  4. 拥有私有遥测记录的团队,希望按照 OpenRCA 的 record.csv 结构和任务规范构造内部根因分析任务。
  5. 复现 ICLR 2025 论文结果的研究者,需要运行已归档预测评测或重新执行论文中的实验配置。

这个 Agent 有哪些优点和局限?

优点
  • 同时覆盖 KPI 时间序列、依赖追踪图和半结构化日志,适合检验跨遥测类型推理能力。
  • RCA-agent 使用 Python 按需检索和分析数据,可减少模型直接处理超长上下文的压力。
  • 提供明确的预测结构、评测命令和报告输出,便于比较不同模型或自定义代理。
  • 除复现实验外,还支持按照任务规范和兼容的记录结构生成新任务。
局限
  • 完整数据与代理运行资源需求较高,官方建议至少 80GB 存储和 32GB 内存。
  • 遥测数据不随空的 dataset/ 目录直接提供,必须另行从 Google Drive 下载并正确放置。
  • 模型实验需要外部 API 配置和凭据,可能产生提供商调用费用;来源没有给出费用估算。
  • 时间统一使用 UTC+8,忽略时区转换会造成时间和组件匹配错误。
  • 网络故障通常无法只凭 KPI 找到,需要分析追踪中父子 span 的延迟关系。

如何安装或部署这个 Agent?

需要 Python 3.10 或 3.11。建议准备至少 80GB 存储空间和 32GB 内存。

# 可选:创建 Conda 环境
conda create -n openrca python=3.10
conda activate openrca

git clone https://github.com/microsoft/OpenRCA.git
cd OpenRCA
pip install -r requirements.txt

从仓库给出的 Google Drive 下载遥测数据并放入空的 dataset/ 目录。若要调用模型,还需在 rca/api_config.yaml 中填写提供商、模型和 API 密钥;仓库给出的 OpenAI 示例为 SOURCE: "OpenAI"MODEL: "gpt-4o-2024-05-13"API_KEY: "sk-xxxxxxxxxxxxxx"

如何使用这个 Agent?

首次运行可选择 Bank 数据集:

python -m rca.run_agent_standard --dataset Bank

Market 的两个 cloudbed 需分别执行:

python -m rca.run_agent_standard --dataset Market/cloudbed-1
python -m rca.run_agent_standard --dataset Market/cloudbed-2

运行后,结果和监控文件会写入新建的 test 目录。评测自有预测时执行:

python -m main.evaluate \
    -p path/to/prediction.csv \
    -q dataset/Bank/query.csv \
    -r test/report.csv

预测 CSV 至少要有 prediction 字段。生成新任务可运行:

python -m main.generate \
    -s main/task_specification.json \
    -r path/to/record.csv \
    -q path/to/query.csv \
    -t UTC+8

也可用 python -m main.generate -d True 随机重新生成 OpenRCA 查询。

这个 Agent 与同类方案有什么区别?

仓库将 RCA-agent 与 run_baseline_balancedrun_baseline_oracle 两类论文基线并列提供。RCA-agent 的明确区别是使用 Python 检索和分析遥测,减少模型直接处理超长上下文的需要;来源未给出这些方案之间的量化结果,因此不能据此断言哪一种效果更好。

常见问题

运行是否需要付费模型 API?
复现代理结果需要配置模型 API。仓库展示了 OpenAI API 配置,并提到归档的 Claude 版本;实际费用取决于所选提供商和模型,来源未提供价格。
可以评测自己的代理吗?
可以。预测 CSV 至少要包含 prediction 字段。提交自定义代理结果时需说明代理是否开源;非开源代理还要提供工具、MCP 或技能说明,以供检查其是否读取了 records.csv 中的真值。
为什么故障时间与记录对不上?
所有故障时间均使用 UTC+8;使用其他本地时区转换可能造成偏移。此外,遥测按固定频率采样,真值时间点不一定恰好存在对应样本。
它能直接诊断任何组织的私有遥测吗?
可以生成面向私有遥测的新任务,但记录结构必须与 OpenRCA 的 record.csv 保持一致,并需要修改 main/task_specification.json。来源没有声称可无转换接入任意现有可观测性平台。
部署结构在三个数据集中是否一致?
不一致。Bank 的组件均处于 Pod 层级;Market 的节点、Pod 与服务关系记录在 metric_container.csv;Telecom 的对应关系由仓库链接的表格提供。

相关 Agents