docs: 固化 WebProbe 浏览器资源治理规格
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
| Monitor 中心持久化实现引用版本 | draft-2026-07-12-p17-monitor-central-persistence |
|
||||
| Cadence/OTel 稳定性实现引用版本 | draft-2026-07-01-p15-cadence-otel |
|
||||
| CI/CD source snapshot 实现引用版本 | draft-2026-07-01-p16-cicd-source-snapshot |
|
||||
| 浏览器资源治理实现引用版本 | draft-2026-07-13-p18-browser-resource-guard |
|
||||
| 需求规格模板 | [ISO/IEC/IEEE 29148 需求规格模板](../../templates/iso-iec-ieee-29148-requirements-spec-template.md) |
|
||||
| 上级规格 | [PJ2026-010605 运维监控](PJ2026-010605-observability-monitoring.md) |
|
||||
| 关联规格 | [PJ2026-010401 Web工作台](PJ2026-010401-web-workbench.md)、[PJ2026-0104010803 Workbench唯一投影](PJ2026-0104010803-workbench-unique-projection.md)、[PJ2026-010403 API契约](PJ2026-010403-api-contract.md)、[PJ2026-010601 发布流水](PJ2026-010601-controlled-release.md)、[PJ2026-010602 源码同步](PJ2026-010602-source-sync.md)、[PJ2026-010603 YAML运维](PJ2026-010603-yaml-first-ops.md)、[PJ2026-010604 公开入口](PJ2026-010604-public-entry.md)、[PJ2026-01060505 Workbench性能](PJ2026-01060505-workbench-performance.md) |
|
||||
@@ -133,6 +134,7 @@ Web哨兵必须遵循 UniDesk YAML-first ops。目标 node/lane、public origin
|
||||
| PJ2026-0106050812 | Monitor Web 观察面板治理 | 本规格 6.12 | 趋势曲线、运行时间线、固定视口三栏、cadence freshness、Vue CI/CD/env reuse/git mirror | Monitor 中心服务与 Web、Dashboard工作台、发布集成、源码同步 | 可滚动上线和值守的统一观察面板 |
|
||||
| PJ2026-0106050814 | 哨兵 CI/CD 可见性 | 本规格 6.14 | publish 阶段耗时、env reuse、docker cache、超时诊断、git mirror/Argo/runtime 收敛下一步 | 发布集成、源码同步、Monitor Web 观察面板治理 | 小改动滚动上线可诊断、可续跑、可验收 |
|
||||
| PJ2026-0106050815 | Cadence/OTel 稳定性 | 本规格 6.15 | Kubernetes CronJob 周期巡检、状态缺口故障码、monitor-web cadence 可见性和 sentinel OTel span 合同 | Monitor Web 观察面板治理、发布集成、OTel、YAML运维 | JD01/v03 周期巡检恢复和后续防回归 |
|
||||
| PJ2026-0106050818 | 浏览器资源治理 | 本规格 6.18 | 物理内存启动资格、短窗口最终复核、浏览器有界证据与精确收尾 | Wrapper边界、YAML配置、平台运维 | WebProbe 人工入口与 cadence 稳定运行 |
|
||||
|
||||
### 5.1 目标架构图
|
||||
|
||||
@@ -755,6 +757,34 @@ Web 哨兵必须向平台 OTel 后端发出有界、脱敏的 span 或在状态
|
||||
|
||||
CI/CD rollout 门禁仍只验证配置声明的 `/health` endpoint。web-probe quick verify、Playwright/browser render、dashboard screenshot 和 OTel trace search 都是独立的 post-deploy evidence;不得重新塞回 `trigger-current --confirm --wait` 的同步门禁,也不得引入 Docker daemon/socket 依赖。
|
||||
|
||||
### 6.18 OPS-SENTINEL-REQ-018 浏览器资源治理
|
||||
|
||||
| 编号 | 短名 | 主责模块 | 关联模块 |
|
||||
| --- | --- | --- | --- |
|
||||
| OPS-SENTINEL-REQ-018 | 浏览器资源治理 | PJ2026-0106050818 浏览器资源治理 | Wrapper边界、YAML配置、平台运维 |
|
||||
|
||||
- 启动资格:
|
||||
- 所有会创建 Playwright/Chrome 的 WebProbe 人工入口与 sentinel cadence 必须在真正启动浏览器前读取目标主机 `/proc/meminfo` 的 `MemAvailable`;
|
||||
- 启动阈值、比较语义、最终复核等待和浏览器证据上限只由 owning YAML 提供;
|
||||
- swap 作为独立压力信号展示,不得计入启动资格。
|
||||
- 当前 HWLAB v0.3 策略:
|
||||
- 阈值为 `4 GiB`;
|
||||
- 人工入口在 `MemAvailable <= 4 GiB` 时阻断,并提示通过受控 GC 完成 plan、run、终态查询和重新读取;
|
||||
- sentinel cadence 在 `MemAvailable < 4 GiB` 时跳过本轮并等待下一 cadence,不创建 observer 或 Chrome,也不自动执行 GC。
|
||||
- 并发启动保护:
|
||||
- 只允许使用覆盖“最终重新读取 `MemAvailable` 到确认真实 Chrome/Chromium executable 已就绪”这一实际风险窗口的最小锁;
|
||||
- 确认就绪后必须立即释放;
|
||||
- 不得扩展为业务任务租约、第二生命周期 authority、证明链、通用状态机或新的服务合同。
|
||||
- 终态收尾:
|
||||
- 成功、失败、timeout 和 signal 路径都必须关闭 context、browser 和本次启动的精确 process group;
|
||||
- 进程归属只以 `/proc` 中的实际 executable、PID/PGID 与精确后代关系判定;
|
||||
- 不接受 Playwright driver 名称或结构化输出自报成功;
|
||||
- 禁止 `pkill`、`killall` 和按名称批量终止。
|
||||
- 证据容量:
|
||||
- 截图默认使用 owning YAML 声明的 viewport 模式,只有显式人工参数可以请求 full-page;
|
||||
- network、failure、response body、性能、截图、样本和历史证据必须有 YAML 上限;
|
||||
- 不得用无限数组、无限响应体或 full-page 默认值放大 WebProbe 自身内存。
|
||||
|
||||
## 7. 过程控制
|
||||
|
||||
Web哨兵架构执行 issue 为 [#883](https://github.com/pikasTech/unidesk/issues/883)。阶段跟踪 issue 为 P0 [#885](https://github.com/pikasTech/unidesk/issues/885)、P1 [#886](https://github.com/pikasTech/unidesk/issues/886)、P2 [#887](https://github.com/pikasTech/unidesk/issues/887)、P3 [#888](https://github.com/pikasTech/unidesk/issues/888)、P4 [#889](https://github.com/pikasTech/unidesk/issues/889)、P5 [#890](https://github.com/pikasTech/unidesk/issues/890) 和 P6 [#891](https://github.com/pikasTech/unidesk/issues/891)。
|
||||
@@ -784,3 +814,10 @@ P14 Web 哨兵 CI/CD 可见性执行 issue 为 [#1285](https://github.com/pikasT
|
||||
P15 Cadence 调度稳定性与 OTel 覆盖执行 issue 为 [#1372](https://github.com/pikasTech/unidesk/issues/1372)。P15 closeout 必须回写:SPEC P15 引用、[#1374](https://github.com/pikasTech/unidesk/issues/1374)-[#1378](https://github.com/pikasTech/unidesk/issues/1378) 阶段状态、JD01/v03 `jd01-web-probe-sentinel` CronJob manifest/GitOps/Argo/runtime observed 证据、`sentinel-cadence-cronjob-missing` 防回归状态、monitor-web cadence/OTel coverage 显示、OTel trace search 或 instrumentation-gap 证据、受控 rollout/publish job、GitOps revision、source commit、dashboard/health 验收,以及 CI/CD 门禁仍只验证 `/health` 的证据。
|
||||
|
||||
P17 Monitor 中心持久化与架构重构执行 issue 为 [#1868](https://github.com/pikasTech/unidesk/issues/1868),P0 调研为 [#1869](https://github.com/pikasTech/unidesk/issues/1869)、[#1870](https://github.com/pikasTech/unidesk/issues/1870) 和 [#1871](https://github.com/pikasTech/unidesk/issues/1871)。P17 必须按“Host PG 前置健康、中心 store/ingest/query、runner terminal submit、一次性迁移与原子切换、monitor-web/CLI 中心读取、自动发布与原入口验收”顺序推进。closeout 必须记录 SQLite 冻结 fingerprint/行数、PG 导入校验、global latest 规则、artifact locator 可达性、runner 停机后历史可读、旧 SQLite 与 runner dashboard 已退出读写路径,以及 PR 合并后的自动 CI/CD 证据。
|
||||
|
||||
P18 浏览器资源治理执行 issue 为 [#1907](https://github.com/pikasTech/unidesk/issues/1907)。P18 closeout 必须回写:
|
||||
|
||||
- owning YAML 配置引用和所有浏览器创建入口矩阵;
|
||||
- `MemAvailable` 与 swap 分离、人工阻断和 cadence 跳过边界;
|
||||
- 精确 context/browser/process-group 收尾和证据容量上限;
|
||||
- 无真实浏览器的边界测试和 NC01 只读资源复核。
|
||||
|
||||
Reference in New Issue
Block a user