rcourtman
201819f8f8
test(go): skip perf-budget overruns on contended local hosts, enforce in CI
...
A full local go test run on 2026-06-11 failed pkg/metrics while vite
builds were saturating the machine. Reproduced under synthetic 8-core
load: only the TestSLO_* wall-clock p95 assertions failed, never the
functional tests. A latency budget measured on a shared dev machine
cannot distinguish host contention from a code regression; load storms
inflated medians up to ~4x with no code change, so no absolute
threshold separates the two.
Route the latency SLO assertions (pkg/metrics, internal/api,
internal/monitoring) and the load/stress perf assertions (internal/api)
through helpers that keep strict enforcement on GitHub Actions runners
(controlled environment, existing hosted-runner envelopes unchanged)
and skip locally on overrun, printing the full p50/p95/p99
distribution in the skip message. A local pass still means the budget
was genuinely met. Error-response and correctness checks remain hard
failures. CI -race runs are unaffected: these tests already skip under
the race detector.
Verified: pkg/metrics, internal/api, and internal/monitoring all pass
with 8 CPU burners saturating the host, the scenario that previously
turned TestSLO_RollupTierBatchedFleet and four other budget tests red.
2026-06-11 13:12:59 +01:00
..
2026-03-18 16:06:30 +00:00
2026-05-25 21:38:43 +01:00
2026-05-25 21:38:43 +01:00
2025-11-26 23:44:36 +00:00
2025-10-20 15:13:37 +00:00
2026-02-07 22:05:55 +00:00
2026-03-18 16:06:30 +00:00
2026-06-10 11:37:39 +01:00
2026-06-02 14:52:47 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-18 14:54:53 +01:00
2026-06-11 10:23:49 +01:00
2025-12-01 17:33:36 +00:00
2026-03-18 16:06:30 +00:00
2025-12-12 17:51:43 +00:00
2025-12-12 18:13:17 +00:00
2026-04-01 19:14:12 +01:00
2026-05-05 14:59:29 +01:00
2026-04-18 10:45:25 +01:00
2026-04-18 10:45:25 +01:00
2026-05-19 12:04:51 +01:00
2026-06-02 23:54:48 +01:00
2026-06-04 10:35:35 +01:00
2026-06-04 10:35:35 +01:00
2026-04-01 13:02:14 +01:00
2026-01-01 22:29:15 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2025-10-14 16:13:53 +00:00
2025-11-12 09:47:02 +00:00
2026-04-01 18:38:42 +01:00
2026-05-05 14:59:29 +01:00
2026-06-04 14:07:14 +01:00
2026-05-19 22:37:55 +01:00
2026-01-28 16:52:35 +00:00
2026-05-05 14:59:29 +01:00
2026-05-05 14:59:29 +01:00
2026-04-22 09:22:46 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-05-05 14:59:29 +01:00
2026-05-29 11:44:29 +01:00
2026-04-01 19:14:12 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 18:38:42 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-01-01 22:29:15 +00:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2025-11-26 23:44:36 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-25 09:25:03 +01:00
2026-05-25 09:25:03 +01:00
2026-04-11 22:46:34 +01:00
2026-02-04 19:49:52 +00:00
2026-02-04 19:49:52 +00:00
2026-04-12 09:41:29 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:00:48 +01:00
2026-06-09 21:42:21 +01:00
2026-06-04 09:54:23 +01:00
2025-12-01 21:18:33 +00:00
2025-11-27 09:16:53 +00:00
2026-02-04 19:35:19 +00:00
2026-05-15 21:27:39 +01:00
2026-05-15 21:27:39 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-06-10 21:25:02 +01:00
2026-06-10 21:25:02 +01:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-01-22 13:39:06 +00:00
2026-06-04 09:11:07 +01:00
2026-06-02 23:54:48 +01:00
2026-06-01 14:16:57 +01:00
2026-05-28 18:23:14 +01:00
2026-06-01 14:16:57 +01:00
2026-05-05 14:19:50 +01:00
2026-06-03 11:43:20 +01:00
2026-06-04 09:00:30 +01:00
2026-05-05 16:25:00 +01:00
2026-04-19 11:42:53 +01:00
2026-04-19 11:42:53 +01:00
2026-05-01 20:28:12 +01:00
2026-06-04 09:11:07 +01:00
2025-11-18 22:57:20 +00:00
2026-06-11 10:23:49 +01:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-05-13 22:18:47 +01:00
2025-10-20 15:13:38 +00:00
2026-05-28 14:42:43 +01:00
2026-06-10 21:25:02 +01:00
2026-06-09 21:42:21 +01:00
2026-04-01 15:29:11 +01:00
2026-04-01 10:04:30 +01:00
2026-05-01 20:28:12 +01:00
2026-04-11 14:51:10 +01:00
2026-06-09 21:42:21 +01:00
2026-06-11 13:12:59 +01:00
2026-05-25 20:35:58 +01:00
2026-05-13 17:05:03 +01:00
2026-01-04 10:29:40 +00:00
2026-06-11 10:57:22 +01:00
2026-05-08 19:53:03 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:36:30 +01:00
2026-04-01 11:51:19 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-11 10:57:22 +01:00
2026-06-10 16:19:24 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:31:50 +01:00
2026-05-13 19:00:02 +01:00
2026-04-01 19:14:12 +01:00
2026-04-01 11:51:19 +01:00
2026-06-10 16:20:35 +01:00
2026-06-10 16:20:35 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 20:41:56 +01:00
2026-04-21 14:46:23 +01:00
2026-04-21 14:46:23 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-06-11 09:47:42 +01:00
2026-06-11 10:23:49 +01:00
2026-01-04 10:29:40 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 09:00:30 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 10:27:59 +01:00
2026-05-17 18:45:24 +01:00
2026-01-05 23:34:33 +00:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-03-18 16:06:30 +00:00
2026-06-11 10:57:22 +01:00
2026-05-05 12:59:59 +01:00
2026-04-11 22:46:34 +01:00
2026-06-10 11:37:39 +01:00
2026-04-01 10:04:30 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-04-11 22:46:34 +01:00
2026-02-07 22:05:55 +00:00
2026-01-14 12:26:18 +00:00
2026-04-23 20:38:33 +01:00
2026-04-23 20:38:33 +01:00
2026-06-10 09:19:51 +01:00
2026-06-10 09:19:51 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-01 23:33:43 +01:00
2026-03-18 16:06:30 +00:00
2026-03-26 22:58:27 +00:00
2026-03-31 15:42:16 +01:00
2026-05-28 11:39:30 +01:00
2026-05-28 11:39:30 +01:00
2025-12-02 17:21:48 +00:00
2026-05-06 10:35:34 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-01-06 17:44:52 +00:00
2026-01-06 17:44:52 +00:00
2026-02-04 19:33:29 +00:00
2025-12-02 12:02:13 +00:00
2026-03-18 16:06:30 +00:00
2026-05-27 15:27:25 +01:00
2026-05-27 15:27:25 +01:00
2026-06-10 09:19:51 +01:00
2026-06-10 09:19:51 +01:00
2026-05-22 20:26:56 +01:00
2026-06-10 09:19:51 +01:00