fix(obs): split SigNoz health and public routes

This commit is contained in:
ogt
2026-07-15 03:03:22 +08:00
parent 12a9aa6cca
commit 9a9d1464a5
21 changed files with 246 additions and 34 deletions

View File

@@ -4,16 +4,19 @@
- 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`
- 公開 `/api/v1/health``components.signoz=down` 不是 OTLP 故障live API 對舊 `192.168.0.188:3301` 回 connection refused而 188 bridge 明確只 bind `127.0.0.1:3301`。同時 collector、4317/4318、gRPC bridge、trace/metric freshness 與 exporter errors 均維持正常,根因是 Query/UI control-plane health target drift。
**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。
- `110-devops.yml --tags backup_jobs` 納入 `backup-signoz.sh`,確保 source guard 有可驗證的 `/backup/scripts/backup-signoz.sh` 部署路徑,不再只停留在 repo。
- `#5128``1518 passed` 後被 asset-integrity workflow shape 測試的過時注解邊界擋下;測試改以下一個 YAML `- name:` 截取單一 step仍保留 shell body 不得出現 `${{ secrets.* }}` 的安全斷言,不放寬 secret transport policy。
- SigNoz 路由分離為 internal Query/health `http://192.168.0.110:8080` 與 public deep link `https://signoz.wooo.work`prod NetworkPolicy 移除無效 `.188:3301` 並只對 `.110/32` 新增 TCP 8080。OTLP `.188:24317/.24318` 與 producer active route 不變。
- 新增 `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`
- SigNoz control-plane health route 修正尚未 deploy/post-verify即使 `components.signoz` 恢復 `up`overall health 仍可因 Ollama primary fallback 獨立維持 `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