fix(ops): bound CD DB probes and restore SigNoz collector

This commit is contained in:
ogt
2026-07-15 02:29:51 +08:00
parent 27736add14
commit bfb2d2d040
11 changed files with 442 additions and 19 deletions

View File

@@ -1,3 +1,19 @@
## 2026-07-15 — P0-OBS-002 post-closure runtime regression 與 guard 修復
**runtime evidence**
- gRPC bridge run `P0-OBS-002-20260715T013800+0800` 先通過完整 600 秒 verifier後續 revision `2004` 於 02:11:22 起發生 liveness/readiness timeout最低 `0/2 Ready`,兩 pod 各累積 restart `4`。bridge 維持同 PID、NRestarts `0`,因此不執行 bridge rollback。
- API log 捕獲 `too many connections for role awoooi_api_runtime`;既有 CD verifier 在 role limit `12`、最低 headroom `8` 的條件下仍固定發出 8 個 DB-backed requests存在把 `4 + 8` 打滿 `12/12` 的結構性風險。已完成的 #5119 receipt 本身顯示 probe 當時 active=`0`、restart `0->0`,故只把此問題列為高信心 structural amplifier不誤報為唯一直接觸發。
- 每日 `backup-all` 02:12 執行 SignOz 備份時停止 collectorvolume backup 立即失敗,總備份僅 `3/9` 成功且 collector 未恢復。`P0-OBS-002-static-recovery-20260715T021600+0800` 只恢復 stateless collector4317/4318、OTLP HTTP `200``.120/.121` gRPC TCP 全數通過stateful services touched=`0`
**source/test evidence**
- CD probe 改為先檢查 connection budget、保留 4 條安全餘量、最多 4 workers、單輪、每 request 5 秒;新增 workers/reserve/skip reason machine-readable receipt fields。
- `backup-signoz.sh` 在 stop 前先 arm restore加入 `EXIT/HUP/INT/TERM` trap、防重入 cleanup 與首次 restart 失敗後的有界 EXIT retry。
- 新增 `ops/signoz/p0-obs-002-post-closure-regression.yaml`,分離 API probe starvation、collector backup interruption、controlled recovery、source candidate 與 scope boundary。
**仍維持**
- API 最近一次讀回雖恢復 `2/2`,但 restart 已是 `4/4` 且較新 Gitea CD 仍連續進行,尚未完成 10 分鐘 cooldownprogram 仍是 `partial_degraded`
- 兩個 source guard 尚未由 main/CD/runtime readback 證明filelog normalization、organization、direct ingress policy、HTTP bridge supervision 與 producer promotion 仍未完成。
## 2026-07-15 — P0-OBS-002 production OTLP/gRPC runtime closure
**完成內容**