Skip to content

CI performance dashboard #1182

Open
Open

Description

Maintained by the CI profiler routine, which runs every 4h. Each run replaces this body and carries the history rows over.

Headline (run 2026-10-29 04:16 UTC)

Window: 2026-10-28 04:16 → 2026-10-29 04:16. 300 runs listed (3 pages, back to 10-28 14:06). The merge queue has been idle since 22:56: no merge_group or push CI runs since 00:16, so the 24h merge-queue numbers are carried from 00:16. This slice had 12 non-stub PR CI runs, all green, with no Depot slow-starts (0/276). PR feedback was the fastest it's been in this history.

Since the last run (00:16 → 04:16)

  • Merge queue: 0 merges, 0 entries. 24h stays at 32 merged, 0 evictions (carried).
  • PR feedback: green full runs created → ci-ok 4.79 / 5.12 (n=12, 4.45–6.48), vs 5.67 / 7.47 at 00:16. coverage (2) finished last in 9 of 12 runs and the Gradle hosted e2e leg in 3. The 6.48 outlier (run) had a 2.67-min e2e-build; the other 11 took 1.12–1.40. That's 1 of 12, so it's a watch item.
  • Depot: slow-start 0% (0/276 Depot jobs, boot p50 5 s, p90 6 s, max 8 s), vs 47% at 00:16. Queue wait p50 1 s, max 7 s. CI perf (settings): slow Depot 16-core hosts since 10-13 15:20 add ~1.5–2.5 min to the merge-queue critical path (~0.6k Linux job-min/day) #1512 is quiet this slice.
  • Open ci-perf PR #1806 (coverage shards balanced on a Linux sample): on its own 4 runs the slowest coverage job went from 4.52 (count split) to 4.23 / 4.15 / 4.55 (~0.2 min). Other PRs' count-split runs this slice: coverage (2) 3.80–4.92 (p50 4.50), coverage (1) 3.00–4.23. The merge_group effect will show after it merges.
  • Open ci-janitor PR #1803 (retry setup-python) covers the 00:16 Setup Python hang watch item. 0 hangs this slice: the longest of 132 Setup Python steps took 7 s. (The 13 attempt 1/attempt 2 steps are Retry setup-python on a transient download failure #1803's own runs.)

24h table

metric 24h
PRs merged 32 (carried; 0 since 22:56). 0 evictions
Merge queue enqueue → merge carried: since 10-28 20:16 7.35 / 8.02 (n=10); burst 9.1 / 13.6 (n=15)
merge_group created → ci-ok (success) carried: 6.53 / 7.42 (n=10); burst 5.08 / 5.35
PR run created → ci-ok (green full runs) this slice 4.79 / 5.12 (n=12)
push to main created → ci-ok none this slice; 4.05 / 5.29 (carried)
Linux queue wait p50 / p90 0.02 / 0.02 (n=300, max 0.12); slow-start 0% (0/276 Depot jobs, max 8 s)
Windows / macOS queue wait p50 / p90 no Windows/macOS jobs this slice; Windows 0.03 / 0.04, macOS 0.03 / 0.05 (carried)
Job-min/day (Linux / Windows / macOS) ~3.5k / 0.1k / 0.03k (est., carried); since 00:16: 427 L in 12 full PR runs (35.6 per run) plus 10 stubs

Top steps since 00:16 (job-min): Run e2e tests 157 (144 legs), Run tests with coverage 85 (24), Install Rust 16 (108), yarn berry/classic VEX steps 15 + 14, Run hosted-mode production e2e 12, Compile the CLI and every CLI test target 10.5, Checkout 10 (288).

Merge-queue settings: not re-read this run (last read 10-28 20:16: build 5 / merge 5, min 1, min wait 5 min, ALLGREEN, timeout 90, SQUASH).

History

run (UTC) merges/24h MQ enq→merge p50/p90 (min) mg CI success p50 PR push→ci-ok p50/p90 mac queue p50/p90 linux queue p50/p90 job-min/day L/W/M
2026-10-29 04:16 32 PRs merged (0 since 00:16; queue idle since 22:56) — since 00:16 (none); 7.35 / 8.02 (carried) none since 22:56; 6.53 / 7.42 (carried) 4.79 / 5.12 (n=12 green full runs, 4.45–6.48) — (no macOS jobs in slice; 0.03 / 0.05 carried) 0.02 / 0.02 queue (n=300, max 0.12); slow-start 0% (0/276, p50 5 s, p90 6 s, max 8 s) ~3.5k / 0.1k / 0.03k (est., carried); since 00:16 PR 427 L in 12 full runs plus 10 stubs
2026-10-29 00:16 32 PRs merged (10 since 20:16: #1785, #1786, #1789, #1779, #1787, #1797, #1792, #1790, #1764, #1765; plus #1763 at 20:19; 0 evictions) since 20:16 7.35 / 8.02 (n=10, 5.37–8.47; max 4 entries in flight, no slot wait) 6.53 / 7.42 (n=10, 4.85–7.90; coverage (2) last in 9/10) 5.67 / 7.47 (n=10 green full runs, 4.97–8.77) — (no macOS jobs in slice; 0.03 / 0.05 carried) 0.02 / 0.02 queue (n=665, max 0.05); slow-start 47% (291/616, p50 10 s, p90 43 s, max 125 s) ~3.5k / 0.1k / 0.03k (est.); since 20:16 mg 447 L / 27 W in 10 runs, push 118 L in 9, PR 595 L in 21
2026-10-28 20:16 23 PRs merged (1 since 16:18: #1748; 0 evictions) since 16:18 12.3 (n=1, #1748); burst 9.1 / 13.6 (carried) 11.48 (n=1, #1748: release-readiness booted 307 s, e2e fan-out last at 11.38); burst 5.08 (carried) 7.6 / 10.7 (n=12 green full runs, 5.0–13.0) — (no macOS jobs in slice; 0.03 / 0.05 carried) 0.02 / 0.02 queue (n=450, max 0.03); slow-start 62% (275/447, p50 35 s, p90 144 s, max 329 s) ~3.5k / 0.1k / 0.03k (est.); since 16:18 mg 69 L, push 21 L, PR ~1,040 L in 18 runs
2026-10-28 16:18 23 PRs merged (20 since 12:17, burst 13:56–14:56; 0 evictions) 9.1 / 13.6 (n=15 timelines; first 5 entries 5.3–5.8, entries 6–13 9.1–13.8 waiting for a slot) 5.08 / 5.35 (n=20, 4.58–6.60, all first-attempt green; coverage (2) last in 12/20, Gradle hosted leg in 7/20) 5.91 / 7.07 (n=8 green full runs, 4.90–7.88) — (no macOS jobs in slice; 0.03 / 0.05 carried) 0.02 / 0.02 queue (n=810, max 0.15); slow-start 23% (181/779 Depot, p50 6 s, p90 31 s, max 104 s) ~3.0k / 0.1k / 0.03k (est.); since 12:17 mg 779 L / 54 W in 20 runs, push 95 L in 11, PR 325 L in 8 full runs
2026-10-28 12:17 12 PRs merged (0 since 08:17; queue idle since 21:16) — since 08:17 (none); 24h ≈6.8 / 9.3 (carried) none since 21:16; 24h ≈5.1 / 7.1 (carried) 5.13 / 7.08 (n=7 green full runs, 4.73–7.08; the 7.08 is a slow coverage (2) on a test-adding PR) — (no macOS jobs in slice; 0.03 / 0.05 carried) 0.02 / 0.02 queue (Depot, n=185, max 0.02); slow-start 3% (5/185, p50 5 s, p90 6 s, max 29 s) ~2.3k / 0.05k / 0.03k (est.); since 08:17 PR 247 L in 17 runs (7 full, 10 stubs)
2026-10-28 08:17 12 PRs merged (0 since 04:16; queue idle since 21:16) — since 04:16 (none); 24h ≈6.8 / 9.3 (carried) none since 00:16; 24h ≈5.1 / 7.1 (carried) 4.90 / 6.25 (n=21 green full runs, 4.53–11.0; the 11.0 waited 5.2 min on a stuck cancel) 0.03 / 0.05 (nightly, n=4) 0.02 / 0.02 queue (Depot, n=687, max 0.03); slow-start 8% (45/582, p50 5 s, p90 11 s, max 35 s) ~2.6k / 0.05k / 0.03k (est.); since 04:16 PR 790 L in 23 runs (incl. 129 for #1768 ×3), nightly 94 L / 53 W / 28 M (failed, bun_lockb)
2026-10-28 04:16 12 PRs merged (0 since 00:16; queue idle) — since 00:16 (none); 24h ≈6.8 / 9.3 (carried) none since 00:16; 24h ≈5.1 / 7.1 (carried) 4.83 / 6.22 (n=7 green full runs, 4.67–6.22; 1 hatch-flake re-run at 8.57) — (no macOS jobs in slice) 0.02 / 0.02 queue (Depot, n=300, max 0.03); slow-start 0% (0/300, p50 5 s, p90 6 s, max 10 s) ~2.6k / 0.1k / 0.07k (est., carried); since 00:16 PR 404.6 L in 11 full runs (incl. 33.8 re-run)
2026-10-28 00:16 12 PRs merged (2 since 20:16: #1744 20:57, #1648 21:16 on its third enqueue; 0 evictions in the slice) since 20:16 8.8 (#1744) and 5.5 (#1648's last enqueue; 87.7 from its first); 24h ≈6.8 / 9.3 8.12 (#1744, rustls bump, coverage (2) last at 7.97) and 5.07 (#1648); 24h ≈5.1 / 7.1 6.5 / 7.6 (n=6 green full runs, 5.05–7.63; #1747's hosted ci-ok run 5.05) — (no macOS jobs in slice) 0.02 / 0.02 queue (Depot, n=219, max 0.03); slow-start 36% (79/219, p50 6 s, p90 39 s, max 80 s) ~2.6k / 0.1k / 0.07k (est., carried); since 20:16: mg 86.4 L in 2 runs, push 30.3 L in 2 runs, PR 254.5 L in 6 full runs
2026-10-27 20:16 17 PRs merged (1 since 16:17: #1702 at 20:05; #1648 evicted twice, 19:57 and 20:18, on coverage (1) mode_migration_pypi) since 16:17 9.3 (n=1, #1702, which waited behind #1648's failing group); 24h 6.1 / 7.6 today (carried) 7.08 (n=1, #1702: ci-ok waited 2.1 min for a Depot boot after the last job ended at 4.93); 24h 5.13 / 6.3 (carried) 9.80 (n=1 green full run, 17:07, with a 2.6-min ci-ok boot) — (no macOS jobs in slice) 0.02 / 0.02 queue (Depot, n=172, max 0.03); slow-start 64% (110/172, p50 31 s, p90 91 s, max 179 s) ~2.6k / 0.1k / 0.07k (est., carried); since 16:17: 2 mg runs + 2 cancelled ≈ 125 L, push 16.2 L, PR ≈ 175 L in 3 full runs
2026-10-27 16:17 16 PRs merged (9 today 13:07–14:58: #1738, #1734, #1735, #1740, #1733, #1739, #1736, #1742, #1741; 7 on 10-26 after 16:17) today 6.1 / 7.6 (n=9, 5.2–8.5, 0 evictions); 10-26 post-burst 9.1 / 10.2 5.13 / 6.3 (n=9, 4.75–6.68; coverage (2) last in 7/9) green full runs 4.87 (n=2, both 4.87; 2 more red at 4.68 / 6.40, PDM unearth before #1738 reached the branch) — (no macOS jobs in slice) 0.02 / 0.02 (Depot, n=441, max 0.22); slow-start 16% of mg jobs (36/231) ~2.6k / 0.1k / 0.07k (est.); since 12:17: mg 343 L / 24.5 W in 9 runs, push 79.7 L in 8 runs, PR 147.4 L in 4 full runs
2026-10-27 12:17 25 PRs merged (0 since 18:54; queue idle 17.4 h) — since 08:16 (none); burst 43.9 / 50.0, post-burst 9.1 / 10.2 (carried) none since 18:54; 6.55 / 9.14 (carried) 6.1 (n=4 full runs, 5.68 / 6.07 / 6.12 / 6.38; 2 delayed ~1.3 min behind a superseded run; coverage (2) last in 3/4) — (no macOS jobs in slice; 0.04 / 0.05 carried) 0.02 / 0.02 (Depot, n≈230, max 0.35) ~2.9k / 0.08k / 0.07k (est.); since 08:16 PR 285 L in 8 full runs (4 red on PDM unearth)
2026-10-27 08:16 25 PRs merged (0 since 18:54; queue idle 13.4 h) — since 04:16 (none); burst 43.9 / 50.0, post-burst 9.1 / 10.2 (carried) none since 20:16; 6.55 / 9.14 (carried) 4.72 (n=3 full runs, 4.63 / 4.72 / 4.92; 1 red on upstream PDM break) 0.04 / 0.05 (nightly, n=4) 0.02 / 0.02 (Depot, n=93 PR + 191 nightly, max 0.05); slow-start 0% (0/93) ~2.9k / 0.08k / 0.07k (est.); since 04:16 PR 106 L in 3 full runs (36.0, 34.9, 35.2); nightly 10-27 254 L / 80 W / 65 M (failed, PDM unearth)
2026-10-27 04:16 25 PRs merged (0 since 18:54; queue idle 9.4 h) — since 00:16 (none); 24h burst 43.9 / 50.0, post-burst 9.1 / 10.2 (carried) none since 20:16; 24h 6.55 / 9.14 (carried) 4.70 (n=3 full runs, 4.62 / 4.70 / 6.43; coverage (2) last in all 3) — (no macOS jobs in slice; 0.05 carried) 0.02 / 0.02 (Depot, n=93, max 0.03); slow-start 3% (3/93) ~3.8k / 0.17k / 0.03k 24h (carried); since 00:16 PR 111 L in 3 full runs (36.4, 35.1, 39.5) plus 3 stubs and 5 audit runs
2026-10-27 00:16 25 PRs merged (0 since 20:16; queue idle since 18:54) — since 20:16 (none); 24h burst 43.9 / 50.0, post-burst 9.1 / 10.2 (carried) none since 20:16; 24h 6.55 / 9.14 (carried) 6.80 (n=3 full runs, 4.68 / 6.80 / 9.02; the 9.02 is a DNS re-run) — (no macOS jobs in slice; 0.05 carried) 0.02 / 0.02 (Depot, n=108, max 0.03); slow-start 6% (6/108) ~3.8k / 0.17k / 0.03k 24h (carried); since 20:16 PR 112 L in 3 full runs (37.3, 37.1, 72.4 incl. re-run) plus 1 cancelled run (27.1) and 6 stubs
2026-10-26 20:16 25 PRs merged (7 since 16:19: #1722, #1719, #1730, #1715/#1723/#1724 in one group, #1731; queue idle since 18:54) since 16:19 9.1 / 10.2 (n=7, 6.1–10.3, 0 evictions); 24h n=25, p90 ≈50 (burst carried) 6.55 / 9.14 24h (n=37); since 16:19 6.57 (n=7, 4.63–9.65) 24h full runs 5.57 / 8.54 (n=27); since 16:19 5.72 / 8.55 (n=11, max 12.77 on 29/31 slow hosts) 0.05 / 0.05 (nightly, n=4) 0.02 / 0.02 (Depot, n=2,546, max 0.95); slow-start 38% of mg jobs 24h (547/1455), 53% since 16:19 (114/217) ~3.8k / 0.17k / 0.03k (mg 2,339 L / 124 W in 47 runs; PR 1,192 L; push 171 L; nightly 93 / 50 / 30)
2026-10-26 16:19 18 PRs merged (all 15:10–16:17, first burst since 10-24 02:54; 1 eviction, #1719 dequeued) 43.9 / 50.0 (n=18; first 3 entries 5.1–7.7; max 67.1 #1706) 6.07 / 9.03 (n=30; 2 at 20.5 / 22.3 on hung rust-cache restores) 24h ≈4.7 / 8.2; since 12:33 6.4 / 8.5 (n=10 full runs during the burst, 4.57–9.68) 0.05 / 0.05 (nightly, carried) 0.02 / 0.02 (Depot, n=1,760, max 0.95); slow-start 36% (326/900 mg jobs) ~3.0k / 0.16k / 0.03k (mg 1,956 L / 106 W in 40 runs, 54% discarded; PR 497 L since 12:33; push 97 L; nightly 93 / 50 / 30)
2026-10-26 12:33 0 PRs merged (queue idle 57.6 h) — (none; last 4: 5.13–6.85 carried) none since 10-24 02:49; 4.48 with #1704 (carried) 4.78 (n=1 green full run since 08:18; 24h 4.58 / 4.77, n=12) — (no macOS jobs in slice; 0.05 carried) 0.02 / 0.02 (Depot, n=31, max 0.02) ~0.51k / 0.05k / 0.03k (since 08:18 PR 34.8 L in 1 full run plus 4 stub and 4 audit runs; nightly 10-26 still in window)
2026-10-26 08:18 0 PRs merged (queue idle 53.4 h) — (none; last 4: 5.13–6.85 carried) none since 10-24 02:49; 4.48 with #1704 (carried) 4.57 (n=1 green full run since 04:16; 24h 4.58 / 4.75, n=13) 0.05 / 0.05 (nightly, n=4) 0.02 / 0.02 (Depot, n=122, max 0.03) ~0.55k / 0.05k / 0.03k (since 04:16 PR 33.9 L in 1 full run plus 4 stub and 4 audit runs; nightly 10-26 92.5 L / 50.2 W / 30.4 M (failed, Windows shard 1); the 10-25 nightly rolled out)

Open ci-perf issues by ROI

ROI on one scale: (thousands of job-min/day weighted Linux ×1, Windows ×2, macOS ×3, plus 1 per critical-path or PR-latency minute) × confidence ÷ effort (S=1, M=2, L=3).

ROI issue saving status
~14 #1670 (settings) 90-min check timeout let a stuck check freeze main for 77 min ~46 min sooner recovery per stuck-check incident No incident since. Needs a repo admin.
~11 #1248 (settings) merge-queue build concurrency ~46 entry-min of slot wait in the 10-28 15-PR burst, up to 8.3 min per entry Commented 16:18. Needs a human decision.
~4 #1512 (settings) slow / lost Depot hosts ~1.5–2 min per merge: slow hosts are also ~33% slower after boot Commented 00:16: slow-start 47%; coverage (2)'s test step 336 s median on slow-boot hosts vs 252 s on fast ones. Needs Depot.
~1 #1720 (coverage tradeoff) Windows-only regressions reach main avoids ~0.2–0.3k job-min of fix churn per regression agent:needs-human; waiting on a maintainer.

This run (04:16): filed none, commented on none, closed none. The queue was idle and Depot had no slow-starts, so there were no new numbers for #1512 or #1248.

Open ci-perf / ci-janitor PRs: #1806 balance coverage shards on Linux test times (~0.2 min per run on its own PR runs); #1803 retry setup-python on a transient download failure.

Merged ci-perf / ci-janitor PRs (last 7 days) and measured effect

PR merged before → after
#1797 release-readiness on a hosted runner (#1795) 10-28 21:56 Delivered. In the 5 mg runs after it, release-readiness booted in 0–1 s and ran 0.10–0.15 min, and coverage started at 0.17–0.23 even while Depot slow-start hit clippy (boot 28–34 s). In the 5 mg runs just before it, slow release-readiness boots (30–55 s) pushed coverage to 0.77 and 1.18. 11 PR runs since: coverage start 0.20–0.30. mg p50 did not drop (6.53) because coverage (2) itself ran on slow hosts (see #1512).
#1747 ci-ok on a GitHub-hosted runner (#1745) 10-28 14:02 Delivered. In 31 runs with hosted ci-ok since, ci-ok finished 0.07–0.12 min after the last job (queue 1–3 s), while Depot slow-start was 23% (p90 31 s, max 104 s). The 8 Depot ci-ok runs in the same burst, before the change reached them, took 0.12–0.17. Before #1747, ci-ok waited up to 2.6 min in slow-start episodes. #1745 is closed.
#1760 fix ETXTBSY flake in the hatch version-gate test (ci-janitor) 10-28 14:02 Holding: 0 hatch failures in 70 CI runs since (32 mg, 21 push, 17+ PR).
#1775 nightly vlt migration tests for eject (#1774, ci-janitor) 10-28 14:01 The next nightly (10-29) will show it.
#1780 retry the Deno install in the deno test image (ci-janitor) 10-28 14:56 Robustness; 0 Deno install failures since (few runs).
#1734 tiny e2e capstones on 3 runners instead of 9 (#1732) 10-27 13:13 Delivered. merge_group runs went from 50 to 44 jobs and from 36.5 to 34.2–35.1 Linux job-min per run (n=6 that add no tests), about −1.5 per run (the PR runs had shown −1.3 to −1.7). Capstones are off the critical path; mg ci-ok p50 5.13.
#1740 retry yarn classic e2e installs on transient DNS (ci-janitor) 10-27 13:17 0 yarn-classic failures in 27 full runs since (17 + 10 this slice, all green). Holding.
#1738 pin unearth<0.19 for the PDM e2e 10-27 13:13 Delivered. 0 PDM failures on main-based runs since; before, 4 of 8 PR runs (08:16–12:17) were red on it.
#1730 cap hung rust-cache restores at 5 min (ci-janitor) 10-26 18:12 Too early to call: 0 hangs in ~10 runs since. Before: 3 hangs of 14.2–15.6 min in one 72-min burst (~330 queue entry-min).
#1708 stop late draft runs cancelling real PR CI (ci-janitor) 10-26 15:10 Holding: 0 draft-run cancels in the 20 PR CI runs after 15:10 (the 1 cancelled PR run was a superseding push on #1730).
#1716 Pipenv pylock test follows uv (ci-janitor) 10-26 15:14 Robustness; 0 Pipenv leg failures in 30 merge_group runs since.
#1710 Windows nightly yarnrc path (#1689) 10-26 15:14 Delivered. In the 10-27 nightly, test (windows-latest, 1) passed in 21.32 min and shard 2 in 17.22 (run), after the 10-24, 10-25 and 10-26 nightlies failed on shard 1. The nightly is still red, but only on the unrelated PDM unearth break.
#1704 shard coverage across two runners (ci-perf, self-picked from dashboard) 10-24 02:38 Delivered, beat its estimate. merge_group ci-ok with the shards: 4.47, 4.48, 4.93 (n=3; run, run, run) vs 6.18–6.47 after #1697 and before #1704: about −1.8 min per merge (expected −1.5). Shards take 3.78–4.62 min (was one 5.88–6.17 job). Cost +0.7–1.4 Linux job-min per mg run (35.9–36.6 vs 35.2), less than the +4 expected. Push to main ci-ok 3.03 / 3.08 (was 3.12–3.27). PR push→ci-ok since 04:16: 4.45–4.95 (n=3) vs 6.37 p50 before.
#1697 Gradle agent suites in their own e2e leg (self-picked from dashboard) 10-23 22:18 Delivered. The Gradle legs now take 2.82–2.98 and 1.77–1.97 min (was 4.58–4.92 combined, 7.40 on a slow host). ci-ok in the 3 merge_group runs that include it: 6.18 / 6.23 / 6.47 vs 6.50–7.58 on fast hosts before (about −0.3 to −1 min). Gradle is off the critical path; coverage now sets it.
#1682 start coverage and e2e-build without waiting on clippy (#1681) 10-23 14:54 Delivered. In merge_group runs, coverage now starts at 0.20–0.30 min (was 1.43–1.47). ci-ok with #1682: 6.50, 6.73, 7.35, 7.58, 10.03 (n=5; p50 7.35, the 10.03 on 100%-slow hosts) vs 7.53–8.15, p50 7.76 before. On fast hosts ~1.1 min saved against 1.3 expected.
#1686 Windows nightly path asserts (ci-janitor) 10-23 14:38 Partly delivered. In the 10-24 nightly Windows shard 2 passed, but shard 1 still failed on -p socket-patch-core --lib (job). Follow-up #1710 (#1689) is open and green in dispatch.
#1690 gem old-Bundler legs (follow-up to #1687) 10-23 14:54 Delivered. No gem leg failures in the 10-24 nightly (its only failure was Windows shard 1).
#1692 compatibility workflows off Node 20 pins (ci-janitor) 10-23 14:47 Maintenance; no CI-time effect expected.
#1673 retry the yarn-classic corepack probe (#1671) 10-23 00:13 Before: 2 of 40 tests failed on one DNS timeout and evicted #1653 (~94 job-min). After the merge: 0 yarn-classic failures in 28 jobs (7 full runs through 04:16, then 21/21 green since). Holding.
#1663 fix uv settings test on Windows nightly (ci-janitor) 10-22 19:29 Did not make the Windows nightly green. The 10-23 nightly failed both Windows shards (cli --test user_patches, core --lib, path-form asserts). Follow-up #1686 passed both shards in its dispatch run.
#1652 keep transport cause in registry errors 10-22 17:38 Diagnostics; no CI-time effect expected.
#1654 retry crates.io in coverage's cargo e2e 10-22 17:12 0 infra coverage failures in 53 merge-group + 19 push runs + 10 PR runs since 04:16. The one 04:16–08:16 failure was a PR's own new test. The 10-22 21:25 PR failure is carried. Holding.
#1643 fix update-lock flake 10-22 17:09 0 recurrences since. Too early to call.
#1647 pin floating toolchains (#1645) 10-22 17:03 No toolchain-drift red main since (7 h). Needs a week to judge.
#1659 runner image's PHP in composer e2e 10-22 17:03 0 Setup PHP failures since (was 1 re-run on 10-21). Composer leg p50 unchanged.
#1666 skip cargo shapes on failed --precise pin 10-22 17:01 Robustness; no CI-time effect expected.

Method notes

  • GraphQL and search/issues are blocked in this environment. Merge-queue state comes from REST timelines of merged PRs. "Enqueue → merge" uses the PR's first added_to_merge_queue event in the window. "Slot wait" = enqueue → the PR's first merge_group CI run created_at.

  • Jobs are fetched with filter=all. Queue wait = job started_at − created_at; skipped jobs are excluded. "Slow start" = job started_at → first step started_at over 15 s, Depot jobs only.

  • Critical path = merge_group run created_at → ci-ok completed_at of the latest attempt.

  • "Discarded" merge_group runs are every CI run except each merged PR's last one.

  • Hang cost (~330 entry-min) = for each entry held, its merge time minus when its own group run finished (or, for the Fix Deno global npm tools missed by -g (#444) #1719 hang, minus ~15:30, when the held groups' runs had finished).

  • Run 10-26 20:16: 300 of 313 runs listed (3-page cap), and jobs for all 108 CI runs. "PR full runs" leave out 1-job stub runs (ci-ok in under 1 min).

  • Runs 10-27 00:16, 04:16, 08:16 and 12:17: the queue was idle, so the 24h merge and merge_group numbers are carried from 20:16. Only the new 4-hour slice was fetched each time. The 12:17 run dropped the 10-24 12:16 history row (18-row cap).

  • Run 10-27 16:17: 197 runs in the window (2 pages). Jobs fetched for every CI run since 12:17. The 24h merge numbers combine the 10-26 post-16:19 slice (carried) with today's 9 merges. The oldest history row (10-24 16:16) was dropped (18-row cap).

  • Run 10-27 20:16: 157 runs in the window. Jobs were fetched for every CI run since 16:17, plus all merge_group/push CI runs in the window, to get ci-ok start gaps (started_at → first step). The oldest history row (10-24 20:16) was dropped (18-row cap).

  • Run 10-28 00:16: 190 runs in the window. Jobs were fetched for every non-stub CI run since 20:16. The 24h enqueue→merge p50 combines the 9 carried 13:07–14:58 values (5.2–8.5, p50 6.1) with Build(deps): Bump zod from 3.25.76 to 4.6.6 in /npm/socket-patch #1702, Build(deps): Bump rustls from 0.23.45 to 0.23.46 #1744 and fix: vendor hosted patches directly from lockfiles #1648 (last enqueue); it's approximate. The oldest history row (10-25 00:16) was dropped (18-row cap).

  • Run 10-28 04:16: 227 runs in the window (3 pages). No merge_group or push CI runs since 00:16, so all 24h merge-queue numbers are carried. Jobs were fetched for the 11 completed full PR CI runs since 00:16. The oldest history row (10-25 04:16) was dropped (18-row cap).

  • Run 10-28 08:17: 283 runs in the window (3 pages). No merge_group or push CI runs since 00:16, so all 24h merge-queue numbers are carried. Jobs were fetched for the 24 non-stub CI runs since 04:16. The oldest history row (10-25 08:15) was dropped (18-row cap).

  • Run 10-28 12:17: 288 runs in the window (3 pages). No merge_group or push CI runs since 10-27 21:16, so all 24h merge-queue numbers are carried. Jobs were fetched for the 17 CI runs since 08:17. The oldest history row (10-25 12:15) was dropped (18-row cap).

  • Run 10-28 16:18: 300 of 369 runs listed (3-page cap; the list reaches back to 10-27 22:41, so the 10-27 20:05–21:16 merges are carried). Jobs were fetched for all 39 non-stub CI runs since 12:17 (20 mg, 11 push, 8 PR) and timelines for 15 of the 20 merged PRs (~60 REST requests). Enqueue → merge p50/p90 is over those 15. The oldest history row (10-25 16:15) was dropped (18-row cap).

  • Run 10-28 20:16: 300 of 417 runs listed (3-page cap, back to 04:51). Jobs were fetched for all 20 non-stub CI runs since 16:18 and timelines for Keep Go hosted pins after go mod tidy drops the zip line #1748 and Read Go workspaces the way go builds them #1763. The CI perf: release-readiness — 10-second gate waits up to 5 min for a Depot boot in front of coverage and e2e (~1–3 min per run in slow-start periods) #1795 replay keeps each run's measured clippy end and per-job boots and puts release-readiness at its own work time + 6 s; jobs needing clippy too move only as far as clippy allows. The oldest history row (10-25 20:15) was dropped (18-row cap).

  • Run 10-29 00:16: 300 of 463 runs listed (3-page cap, back to 10-28 13:44, so all 32 merge_group runs since the 13:56 burst are in it). Jobs were fetched for all 31 non-stub CI runs since 20:16, timelines for the 10 PRs merged since 20:16, and 1 job log. GraphQL is still blocked (403). ~50 REST requests. The oldest history row (10-26 00:16) was dropped (18-row cap).

  • Watch item, not filed: one uv/composer e2e leg on a PR (job) spent 18.7 min in Setup Python (3.12.10 isn't in the Depot tool cache, so every leg downloads it in 5–8 s; this one hit getaddrinfo EAI_AGAIN raw.githubusercontent.com at 3.5 min and then hung until 19.3 min). It cost the PR ~20 min and a 24-min re-run. That's 1 of 200 Setup Python steps in 4 h. A step timeout-minutes plus a retry, like the rust-cache cap (Cap hung rust-cache restores so they cannot stall the merge queue #1730), would bound it. It'll be filed if it recurs.

  • Not filed: coverage shard balance. coverage (2)'s test step still runs 241–264 s vs 161–179 s for shard 1 on fast hosts, but the Gradle e2e leg ends at ~4.9–5.0 min, so balancing gives at most ~0.3–0.5 min on fast hosts. Balance coverage shards on measured test time #1768's retry with a Linux timing sample stays a low-ROI option.

  • Run 10-29 04:16: 300 runs listed (3-page cap, back to 10-28 14:06). No merge_group or push CI runs since 00:16, so all 24h merge-queue numbers are carried. Jobs were fetched for the 12 non-stub CI runs since 00:16 (~25 REST requests, no job logs). The oldest history row (10-26 04:16) was dropped (18-row cap).

  • Watch item, not filed: one e2e-build took 2.67 min (run), vs 1.12–1.40 in the other 11 runs, and it pushed that run's ci-ok to 6.48. It'll be filed if it recurs.


Generated by Claude Code

Activity

  1. mikolalysenko commented on Oct 8, 2026

    @mikolalysenko
    CollaboratorAuthor

    [agent] There are now two open dashboard issues: this one and #1175, both titled "CI performance dashboard" and labeled ci-perf-dashboard. The body says it is maintained in place, so the profiler routine should update one issue rather than open a new one each run. I'm not closing either one, because I can't tell which issue the routine will update next. Whoever owns the profiler should close the copy it no longer updates.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions