feat(gateway,admin-web): 可观测面从轮询改为 WS 帧推送(裁决 05.4.3 + 16.4.3-WS)
- 新增三个下行帧(纯新增,既有帧名/形状零改动):observability_log / observability_trace /
observability_metrics,各带 ≤1s 节拍、无新数据不发帧、单帧上限(日志 200 / span 100)
- 帧壳 {type,data} 不带 sessionId;**不进 frameReachesAll 白名单** ⇒ fail-closed 只发 owner+admin
(变异验证两次:加进白名单 → viewer 用例必红)
- 推送开启条件=owner/admin 凭据「读过一次」对应 REST(引导数据仍由该次读取返回),
连接全断即退订并停循环(无常驻 goroutine);既有 REST 端点路径/RBAC/形状完全不变
- 前端:删除 logs/metrics/trace 三处 useAutoReload 轮询;新增 observabilityStream(引导+去重合并+窗口)
与 observabilityViews(三个面板 + WS 徽标),长列表统一走已落地的 VirtualList
- 复核:build/vet 绿 + gateway 全包测试绿(含真 bus→真 /ws/chat 三角色帧断言)+ `-race`;
前端 tsc 0 错 + vite build 成功
- 待登记契约:api-client 需新增「可观测实时推送」一节
This commit is contained in:
1 parent
74b12d87ca
commit
0e1f163ef9
10 files changed
+1449
-312
No files matched your search
@@ -26,6 +26,12 @@ var eventBridge = map[string]string{
|
||||
"automation.result": "automation_result",
|
||||
"reminder.trigger": "reminder",
|
||||
orchestration.SubagentResultSubject: wsSubagentResult,
|
||||
// 可观测面(裁决 05.4.3 + 16.4.3-WS):日志/指标/trace 的推送帧。载荷形状
|
||||
// 与既有 REST 端点同形(见 observability_push.go),因此面板换成消费帧后
|
||||
// 不需要第二套解码。
|
||||
obsLogSubject: wsObservabilityLog,
|
||||
obsTraceSubject: wsObservabilityTrace,
|
||||
obsMetricsSubject: wsObservabilityMetrics,
|
||||
}
|
||||
|
||||
// bridgePatterns 是 hub 在 ws.> 之外额外订阅的 bus 模式,用于
|
||||
@@ -36,6 +42,9 @@ var bridgePatterns = []string{
|
||||
"automation.>",
|
||||
"reminder.>",
|
||||
"cyrene.agent.*.event",
|
||||
// 可观测推送(observability.log/trace/metrics):日志/指标/trace 的增量
|
||||
// 帧都走这个主题族,见 observability_push.go。
|
||||
"observability.>",
|
||||
// 后台子代理批次结果:它既不匹配 ws.>,也不是 cyrene.agent 的 4 段广播形态,
|
||||
// 所以必须在这里登记订阅,否则后台结果永远上不了前台(只能看到进度帧)。
|
||||
orchestration.SubagentResultSubject,
|
||||
|
||||
Reference in new issue
Block a user