fix(observability): restore incumbent OTLP gRPC transport

This commit is contained in:
ogt
2026-07-15 01:21:57 +08:00
parent b02bc98c73
commit dd46ff8bc5
7 changed files with 489 additions and 1 deletions

View File

@@ -8,15 +8,19 @@
- 產出 `ops/signoz/p0-obs-002-three-signal-route-parity.yaml`;明確把 synthetic route parity 與真實應用 trace freshness、producer queue gate、正式 promotion 分開。
- 最新 10 分鐘 error fingerprint 證明 normalization noise 是固定成對錯誤:`.120``cri_parser regex_no_match=156` + `move3 missing_field=156``.121``126 + 126`;同時兩個 collector queue / send_failed 都是 `0`
- 第一版 filelog candidate 的 `on_error: send_quiet` 通過 `0.96.0 validate`,但隔離 Pod 在真正 build pipeline 時明確拒絕;兩次 canary 均已刪除且未碰正式 DaemonSet。source 已移除不相容欄位,改為 parser `body matches` 前置條件、保留 malformed 原始 body、以 `awoooi.log.parse_status=fallback_unparsed` 標記,並只在 `attributes.log` 存在時 move body修正版刻意不做第三次 runtime canary狀態維持 canary pending。
- 真實 trace freshness audit 找到 `0.99` 信心根因Python SDK traces / metrics 使用 gRPC `.188:24317`,但現有相容橋接只有 HTTP `.188:24318 -> .110:4318`API pod 對 24317 連線拒絕ClickHouse 最近只有三筆 synthetic verifier span`awoooi-api=0`
- 新增獨立 user-systemd gRPC bridge source `.188:24317 -> .110:4317`,沿用 `.120/31` source allowlist具備 check / apply / status / rollback另增 10 分鐘真實應用 trace + metric aggregate、export error=0、restart delta=0 post-verifier。它不改 API endpoint、不改 firewall且可與 HTTP bridge 分開回滾。
**已跑驗證**
- SigNoz / OTEL / Event Exporter / API config 聚焦回歸:`43 passed`;其中 canonical route migration 為 `9 passed`。ruff、py_compile、支 shell `bash -n`、canonical route preflight、三份 Kubernetes server dry-run、runner pressure guard、Gitea secret transport guard 與 `git diff --check` 通過。
- SigNoz / OTEL / Event Exporter / API config 聚焦回歸:`45 passed`;其中 canonical route migration 為 `11 passed`。ruff、py_compile、支 shell `bash -n`、canonical route preflight、三份 Kubernetes server dry-run、runner pressure guard、Gitea secret transport guard 與 `git diff --check` 通過。
- gRPC bridge no-write check `P0-OBS-002-grpc-bridge-check-20260715T012000+0800` 通過:`.110:4317` upstream TCP ready、`.188:24317` 無既有 listener、user linger=yes、source range 維持 `.120/31`
- Gitea feature evidence commit `0523af6bfc9572f1822daef7277ace80d79cb1bb` 已由 SSH exact ref 回讀;這只完成 feature 層 durable acknowledgementmain / CD / production / KM writeback 仍是獨立 pending。
- 先前 route-specific log replay 已驗證 `.120/.121` HTTP `200`、ClickHouse exact marker `1`、15 秒 queue / failure delta `0`;本次三訊號 direct verifier不把該結果誤宣稱成 producer canary。
- bridge rollback 後 `.120/.121 -> .188:24318` 回 HTTP `200`legacy cron 已恢復live user-systemd unit 已移除 / disabled。
**仍維持**
- `setupCompleted=false`、organization 未初始化、`.110:4317/4318` direct ingress 暴露面尚未收斂、真實應用 traces 不新鮮、filelog normalization source fix 尚未 canary、bridge 尚未由 user-systemd supervision 接管。
- gRPC bridge 本輪先維持 source-ready / runtime-apply-pending必須等目前 Gitea CD / API rollout 穩定 2/2 後,才可套用並跑完整 600 秒 post-verifier。HTTP-only synthetic `/v1/traces` 成功不能取代此 gRPC 證據。
- synthetic 三訊號 parity 不等於正式 producer canary、Wave B promotion、bridge retirement、AI learning writeback 或 production closureactive route 仍是 incumbent。
- organization/root bootstrap 涉及 durable credentialdirect ingress policy 可能涉及 firewall / mTLS。這些維持獨立 high/critical gate本輪未讀 secret、未改 firewall、未寫 raw DB、未碰 stateful volume。
- Gitea feature branch / source 測試、main CD、deploy marker、production runtime 與 visible evidence 仍分層追蹤;不得由 feature push 或 synthetic readback 倒推 production 已部署。