@devbie/web-monitor-sdk

中文文档
1.6.0发布于 2026/11/06MITTypeScriptCommonJS零依赖近 30 天下载 2896

浏览器-侧网络监控 SDK:PV,AJAX,资源,JS错误和自定义事件报告. 没有心跳,没有证明逻辑.

此软件包已被标记为弃用

Renamed to @devbie/frontend-monitor-sdk. Use @devbie/frontend-monitor-sdk@^1.8.1.

中文使用文档
文档目录14 节
  1. 特征
  2. 安装
  3. 快开始
  4. 与 Next.js 一起使用
  5. 输入选项
  6. 返回的 API
  7. addError(error)
  8. addCustom(event)
  9. setConfig(config)
  10. 商业错误报告
  11. 报告类型和运输
  12. 全球接入
  13. 相关软件包
  14. 许可证

@devbie/web-monitor-sdk (英语)

npm version license

浏览器-侧面网络监控 SDK. 它自动收集页面视图和页面 性能数据, AJAX 调用(均为 XMLHttpRequest 财务报告和审定财务报表 fetch),资源 加载、 JavaScript 错误和自定义事件, 并将其报告给收藏家 终点 SDK只处理监控——没有心跳和证书 逻辑.

特征

  • 页面使用情况 负载时间、第一输入元数据、屏幕大小、, 裁判员和业绩条目.
  • AJAX 监测 - 透明文书 XMLHttpRequest 财务报告和审定财务报表 fetch、记录方法、URL、状态、响应大小、时间和可选性 追踪身份.
  • 资源监测 – 资源负载缓慢而失败通过 PerformanceObserver 资源 error 事件.
  • 错误监测 —— 说 window.onerror, (中文(简体) ), unhandledrejection,资源负荷 失败和 console.error,带有已解析的堆栈痕迹.
  • 自定义事件 ——以节制批量报告商务活动.
  • 商业错误代码 插入一个 errcodeReport 确定标记 hTTP 200 内部的工商级失败.
  • 匿名身份 ——每个用户,每页,唯一访问者和设备标记 在浏览器中生成.

安装

npm install @devbie/web-monitor-sdk

快开始

在您的应用程序中尽早初始化 SDK —— 例如 您的根布局或应用程序条目 :

import init from "@devbie/web-monitor-sdk";

init({
  api: "https://collector.example.com/api/web-monitor/report",
  token: "<report token>",
});

这个 init 为手动报告调用返回帮助函数 :

const monitor = init({
  api: "https://collector.example.com/api/web-monitor/report",
  token: "<report token>",
});

monitor.addCustom({
  customName: "checkout",
  customContent: { orderId: "1001", amount: 99 },
});

与 Next.js 一起使用

少比框架装有现成的登记册包装:

npx @devbie/fewbie-cli add web-monitor-sdk

然后加上脚手架 <WebMonitor /> 组件到根布局和 配置 NEXT_PUBLIC_WEB_MONITOR_ENDPOINT 财务报告和审定财务报表 NEXT_PUBLIC_WEB_MONITOR_TOKEN。 。 。 . 在两种环境变量都存在之前,该组件都是不开放的.

输入选项

选项类型默认需求说明
apistring—— 说对接收报告有效载荷的收集器端点.
tokenstring—— 说对为部署签发了报告符; 收集器将其解决为应用程序分区 .
isPagebooleantrue没有收集页面视图/页面性能数据.
isAjaxbooleantrue没有A. 第XHR和 fetch 请求.
isResourcebooleantrue没有收集资源时间和缓慢/失效的资源.
isErrorbooleantrue没有收集JS错误,拒绝,资源错误和控制台错误.
filterUrlsstring[][]没有URL被排除在AJAX/资源收藏之外. 收集器端点( E)/api/web-monitor/report)总是自动过滤.
userobject{}没有初始用户身份 : { uid?, p? } (单位:千美元)p 应预先加密.
isTraceIdbooleanfalse没有从AJAX的电话中抓取跟踪ID响应头.
traceIdHeaderNamestringx-trace-id没有回复页眉名称为何时读取 isTraceId 已启用.
customsThrottleMsnumber1000没有用于批量自定义事件的喉咙窗口,以毫秒为单位.
errcodeReportfunction—— 说没有业务出错解析器,见下文.

返回的 API

init() 返回带有下列成员的对象:

addError(error)

手动按下脚本错误以立即报告 :

monitor.addError({
  msg: "Something went wrong",
  line: 42,
  col: 10,
  resourceUrl: "https://example.com/app.js",
});

addCustom(event)

队列自定义事件 。 对象内容被序列化为 JSON; 队列事件为 冲出(并分批出) customsThrottleMs数字 :

monitor.addCustom({
  customName: "button-click",
  customContent: "pay-now",
  customFilter: { page: "checkout" }, // optional, must be an object
});

setConfig(config)

初始化后更新用户身份 。 何时 p 提供它 存储前加密 :

monitor.setConfig({ uid: "10086", p: "plain-text-secret" });

商业错误报告

HTTP 200的响应仍然可以代表企业的失败. 提供 errcodeReport 确定检查解析的响应数据并决定是否 报告出错 :

init({
  api: "https://collector.example.com/api/web-monitor/report",
  token: "<report token>",
  errcodeReport: (responseData) => {
    return {
      isReport: responseData.code !== 0,
      errMsg: responseData.message,
      code: responseData.code,
    };
  },
});

报告类型和运输

报告有以下一种类型:

类型内容
PagePerf页面性能,资源和导航出错.
AjaxPerfAJAX 活动和页面报告之间的错误.
Error立即捕获出错( 已宣告) .
Custom断开自定义事件 .
Unload最终报告在页面卸载.
SdkErrorSDK本身内部出错.

有效载荷带有 Content-Type: text/plain 通过 fetch (监测) 请求从未重新提出) Unload 报表使用 navigator.sendBeacon 当可用时。 如果收藏家无法接触到, 报告暂停,以避免请求风暴.

全球接入

对于无法直接导入模块的集成, 默认 初始化器也在浏览器上被曝光为 window._frontendMonitor。 。 。 .

许可证

麻省理工学院

版本与发布记录

@devbie/web-monitor-sdk 共发布 17 个版本,首次发布于 2026/09/27;过去 12 个月发布了 17 个版本。

版本发布日期距今
1.6.0latest2026/11/065 天前
1.5.32026/11/065 天前
1.5.22026/11/065 天前
1.5.12026/11/066 天前
1.5.02026/11/066 天前
1.4.12026/11/056 天前

关于 @devbie/web-monitor-sdk 的常见问题

@devbie/web-monitor-sdk 是什么?

浏览器-侧网络监控 SDK:PV,AJAX,资源,JS错误和自定义事件报告. 没有心跳,没有证明逻辑.注意:该包已被作者标记为弃用——Renamed to @devbie/frontend-monitor-sdk. Use @devbie/frontend-monitor-sdk@^1.8.1.

如何安装 @devbie/web-monitor-sdk?

在项目目录运行 npm install @devbie/web-monitor-sdk,或使用 pnpm add / yarn add / bun add。

@devbie/web-monitor-sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@devbie/web-monitor-sdk 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@devbie/web-monitor-sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@devbie/web-monitor-sdk 可以商用吗?

@devbie/web-monitor-sdk 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@devbie/web-monitor-sdk 的下载量有多少?

根据 npm 官方下载统计,@devbie/web-monitor-sdk 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,896 次,日均约 97 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@devbie/web-monitor-sdk 还在维护吗?

最新版本 1.6.0 发布于 2026/11/06(5 天前);至今共发布 17 个版本,其中过去 12 个月发布了 17 个;首次发布于 2026/09/27。作者已将其标记为弃用,新项目建议寻找替代方案。