Pixiv

AutoUsage

内网设备使用率采集上报工具 —— CDP 拦截设备 Web 控制台接口采集指标,brotli 压缩二维码摆渡跨内外网,服务端 Playwright 自动填表。

Node.jsCDPPlaywright

AutoUsage 是一个用 Node.js 编写的内网设备使用率采集上报工具,解决内外网隔离场景下“设备指标只能在内网 Web 控制台看、统计表单却在互联网侧”的问题,把“人工看控制台 + 手机拍照抄数 + 人工填表”的全流程自动化:

客户端(CDP 拦截采集) → JSON 报告 brotli 压缩 → 二维码
→ 手机扫码摆渡 → 服务端接收解码 → Playwright 自动填表

功能特性

  • CDP 采集:通过浏览器 CDP 拦截设备 Web 控制台接口响应,采集 CPU、内存、硬盘、接口流量使用率
  • 二维码摆渡:数据经 brotli 压缩生成二维码,手机扫码跨内外网传输;十余台设备数据通常仅数百字节
  • 自动填表:服务端用 Playwright 按选择器规则自动填写统计页面,支持 kdocs / EtherPad 类编辑器
  • 只读安全:客户端只读不写,所有操作均为模拟浏览与请求拦截,不向设备提交任何修改
  • 离线回放测试:将 DevTools 导出的 HAR 放入 device_har/ 目录即可离线验证采集配置,“全绿再实测”
  • 灵活提取规则:path(含负数索引)、transform(parseJson / first / last / number / percent)、round、glob / 子串匹配

架构(Monorepo 三个包)

  • common/(@autousage/common):两端共享 Logger、payload 契约、时间工具
  • client/:采集客户端,CDP 采集 + 二维码生成
  • server/:HTTP 接收(落地页 / 预览 / 提交 / 状态)+ Playwright 自动填表

payload 契约:/push#p=<base64url(brotli(JSON))>,数据放 URL fragment,不经过任何第三方。

使用流程

  1. 服务端(互联网电脑):npm start 监听 0.0.0.0:3000
  2. 客户端(内网电脑):以 --remote-debugging-port=9222 启动浏览器并人工登录设备控制台,运行 npm start 采集并生成 output/qrcode.png
  3. 手机摆渡:与服务端同 WiFi 扫码,核对落地页预览后提交,页面实时显示填表进度

部署

npm run build 经 esbuild + SEA 打包为单文件 exe(client / server 各一),目标机器无需安装 Node.js,支持 Linux / macOS 交叉构建 Windows exe。推送 tag 触发 CNB 云原生构建流水线自动测试、构建并发布 Release。

许可证

MIT

0%