# PR #21015 完整报告

- 仓库：`sgl-project/sglang`
- 标题：fix: only showing recent runners from ci failure analysis
- 合并时间：2026-04-01 11:18
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/21015

---

# 执行摘要

- 一句话：修复 CI 失败分析脚本，仅使用最近运行数据避免旧 runner 干扰，并添加失败 job 列表用于调试。
- 推荐动作：建议负责 CI 基础设施或监控的工程师精读此 PR，重点关注数据范围缩小的设计权衡（如何平衡历史覆盖与性能），以及新增失败记录功能的实现细节，以借鉴于类似监控脚本优化。

# 功能与动机

根据 PR body 描述，当前 runner 状态分析使用了过去 100 次 nightly 和 PR 测试运行的通用数据（"general runs"），这会渲染可能已被移除的旧 runners（"renders old runners that may have been removed"），同时缺乏针对特定 runner 的详细调试信息。因此，需要缩小数据范围以避免历史数据干扰，并列出所有在给定 runner 上失败的 jobs 以辅助调试（"for easier runner-specific debugging"）。

# 实现拆解

实现方案主要包括两个部分：数据源调整和增强输出。首先，在 `scripts/ci_monitor/ci_failures_analysis.py` 中修改 `runner_runs` 变量，从使用通用运行数据切换到使用预过滤的计划运行数据（即最近 6 次 nightly 计划和 12 次 PR 计划运行），以减少历史数据处理量。其次，在 `analyze_runner_health` 函数中添加 `runner_instance_all_failures` 和 `runner_instance_all_failures_in_streak` 字典，用于记录每个 runner 的所有失败信息；在 `generate_job_section_md` 函数中更新 Markdown 输出表格，新增 "Failed Jobs" 列并调整表头以显示所有失败 job 列表。

关键文件：
- `scripts/ci_monitor/ci_failures_analysis.py`（模块 CI Monitoring）: 唯一变更文件，包含核心 CI 失败分析逻辑，实现了数据源调整和失败记录增强，直接影响 runner 健康分析的准确性和输出。

关键符号：analyze_runner_health, generate_job_section_md


# 评论区精华

review 中仅有一个来自 gemini-code-assist[bot] 的评论，它肯定了变更的逻辑性和改进（"The change is logical and improves the script's focus."）。没有其他讨论或争议点，变更被快速接受。评论指出数据源变更避免了处理过多历史数据，从而提高了脚本的执行速度和相关性。

- 数据源变更和改进评估 (design): 变更被接受为逻辑和有益，无争议或修改建议。

# 风险与影响

- 风险：技术风险包括：1）数据源变更风险：从过去 100 次运行缩减到最近 18 次计划运行，可能导致某些历史失败模式被遗漏，影响分析完整性（例如，如果 runner 故障在更早时期发生）。2）输出格式变动：更新 Markdown 表格可能影响下游工具或文档的解析兼容性（如更改了列名和数据结构）。3）性能权衡：虽然减少数据处理量可能提升执行速度，但需确保新数据范围足够覆盖典型 CI 问题。风险点集中在文件 `scripts/ci_monitor/ci_failures_analysis.py` 的数据筛选逻辑和输出生成部分。
- 影响：对用户（工程师）影响：提供更聚焦的 runner 健康数据和详细失败 job 列表，便于快速调试 CI 故障，提升开发体验。对系统影响：CI 失败分析脚本运行更高效，减少不必要的数据处理开销；但需监控分析准确性是否因数据缩减而下降。对团队影响：改进 CI 基础设施的维护效率，与其他 CI 优化 PR 协同提升整体稳定性。影响范围限于 CI 监控模块，程度为中等。
- 风险标记：数据源变更风险 , 输出格式变动

# 关联脉络

- PR #21800 [Misc] Tiny: Add test network timeouts and dynamic max-parallel for 5090/2-gpu runners: 关联原因：同为 CI 优化相关 PR，涉及提升 CI 稳定性和性能，共享 ci 和 infra 标签，体现了仓库在近期持续改进 CI 基础设施的趋势。
- PR #21778 Cache nvidia wheels locally to skip repeated 830 MB downloads in CI: 关联原因：同为 CI 效率改进 PR，通过缓存机制减少 CI 运行时间，与本 PR 的数据处理优化目标一致，共同提升 CI 系统整体性能。