Repository navigation
[PR] feat(diagnostics): /__bili/memory exposes cumulative CPU time + core count - #3455
ranxianglei wants to merge 10 commits into
Conversation
📦 Built Package ArtifactBranch: Latest build — install this exact versionnpm install -g [email protected]This exact version is immutable and reproducible. The rolling Recent builds (commit → version)
Download artifact
tar xzf billion-context-pr3455.tgz
npm install -g packageInstall instructions are refreshed on each push. |
(ai: vllm-qwen/qwen3.8-27b) 查重:不重复 —— open+closed 检索「__bili/memory / cpuUserNs / CPU 时间诊断」无其他条目;仅父跟踪 issue #3437(开放,资源占用跟踪)。本 PR 是 #3437 对照协议的组件,不 Closes(符合 owner 对该 issue 的保留要求)。 审核范围与方向(①):#3437 的内存/CPU 对照协议要求同一采样点同时拿到进程内存与 CPU 时间增量。此前端点只有内存字段,CPU 侧要各平台各写 OS 工具且口径易漂移——补字段的方向正确:纯增量、同源(Node 自身计时)、同一采样点。 回归审查(②,既有行为清单):
代码审查(③):src/server/admin.ts 加 测试有效性(④): diff 整洁度(⑤):2 文件,+102/-2,每行都与本 PR 目的相关,无跑题/空白噪音。 CI 现状:静态门禁全绿(gate/build-artifact/kernel-guard/version-guard/config-surface-guard/docs-sync/unused-exports/pi-subagents-guard/lane-guard/test-import-graph/lock-sync/plan/docs-coverage);test 泳道 6 条(ubuntu 22×3、ubuntu 24×1、windows 22×2)仍在跑,e2e 泳道按路径条件 skip(未触碰管线路径,符合预期)。全量回归以 CI 为准。 结构化八问
判定:代码与测试已本地定向验证通过,静态门禁全绿;待 CI 6 条 test 泳道转绿即可合并(feat 类,按 §7.4 由人工合并)。 |
629ca85 to
4b16135
Compare
4b16135 to
1dc5f7f
Compare
…xports gate Inherited master-red (#4545 added client-build-note.ts after the 4d34abf gate repair): ClientBuildCheck is referenced only inside its own file, so drop the leading export (INTERNAL_ONLY fix, same pattern as the 3 symbols de-exported in 4d34abf). No behavior change — pure visibility narrowing.
(ai: vllm-qwen/qwen3.8-27b) CI auto-fix lane attempt 1/2: 七问
备注:CI 重触发后如仍有其他红(如 test 分片命中 LIVE_FILES tripwire),均属已列档的 master 风暴(#4599,修复载体 #4606),不在本车道范围;#4606 合入后 rebase 时丢弃本修复 commit,避免重复 commit 进 master。 |
master window commits 293ae65/de5e03659 bumped kernel/package.json to 0.0.165 without regenerating the lockfiles; lock-sync re-resolution then rewrites the stale recorded versions (root 0.0.163, kernel 0.0.164) and fails. Pure recorded-version sync via npm install --package-lock-only; no dependency or semantic change.
(ai: vllm-qwen/qwen3.8-27b)
Part of #3437(不 Closes——该 issue 按 owner 要求保留为资源占用与覆盖范围的跟踪问题,本 PR 只是其对照协议的组件)。
背景
#3437 的内存/CPU 对照协议需要同一采样点同时拿到进程内存、CPU 时间增量与存储路径计数。此前
GET /__bili/memory只有内存字段,CPU 侧要各平台各写一套 OS 工具,口径还容易对不上任务管理器;sidecar 的 delta/full 摄取计数也只在内部,现场无法确认稳态保存是否走在增量快路径上。改动(两笔提交)
①
/__bili/memoryCPU 字段(src/server/admin.ts)——process对象新增三个纯增量字段:cpuUserNsprocess.cpuUsage().user)cpuSystemNsprocess.cpuUsage().system)cpusos.cpus().length),归一化分母自描述采样器契约(写在端点 docstring):计数器是累计值,取两次 poll 的差;核当量 = Δns / Δwall_ns(1.0 = 一核打满);任务管理器风格百分比 = Δns / (Δwall_ns × cpus)。
② sidecar 摄取计数上 wire(
src/storage/runtime-status.ts)——storage 载荷新增两个扁平计数字段ingests(本进程总摄取数)与deltaIngests(走 #3133 O(新尾) 快路径的次数),出现在/__bili/status与 overview。沿用 master 上verifyDrift(#3135④/#3818)的既有惯例:扁平 number、无侧车时?? 0。现场读deltaIngests/ingests ≈ 1即确认稳态保存在走增量路径。相对上一版的收敛(rebase 说明)
分支已 rebase 到 master
146b34f27(#4590 train)。期间 master 并入了 #3919/#4323(shadow drift forensics):DIGEST DRIFT 日志行已自带字段级诊断(describeViewDivergence:漂移维度 + 首个分歧尾槽位,仅指纹不含正文)、连续漂移标记与 N 连漂升级(冻结本进程 envelope 写)。因此原第三笔提交(drift-parts 日志点名)被 master 方案取代,已移除;原ingestStats {ingests, deltaIngests, verifyDrift}对象也与先行的verifyDrift扁平字段重叠,按 PR 初版声明的「先合入者为准」收敛为只补ingests/deltaIngests两个扁平字段。行为变更披露
GET /__bili/memory响应process对象新增 3 个 JSON 字段(旧版没有 → 新版有);/__bili/status+ overview 的 storage 载荷新增 2 个加性计数字段(消费端兼容)。测试
tests/issue3437-memory-cpu.test.ts:真实起服(port 0)GET 两端点,断言 CPU 三字段存在且为非负整数、cpus ≥ 1、跨两次 poll 单调不减、既有内存字段完好;storage 载荷断言verifyDrift/ingests/deltaIngests形状(delta ≤ total)。1dc5f7fbf)。