采集概览
渲染进程的页面数据由
@flashcatcloud/browser-rum 采集,支持范围与 Web SDK 数据收集一致。
区分主进程和渲染进程
两类事件使用不同的来源字段:
要筛选一个 Electron 应用产生的全部事件,请使用:
source:electron 会遗漏渲染进程数据。
如果渲染进程事件没有
container.source: electron,说明事件没有经过主进程桥接。请参阅为什么只有主进程数据。process 属性,取值为「主进程」或「渲染进程」,用于直接区分事件来自哪个进程;会话事件列表中,主进程事件还会带有「主进程」标记。
会话
主进程负责 Electron 应用的会话生命周期:
纯主进程后台任务不会延长会话,也不会自动创建新会话。
用户身份
主进程 SDK 会为应用生成稳定的匿名设备标识。调用setUser() 后,主进程事件和通过桥接上报的渲染进程事件都会带上登录用户信息。
会话回放由渲染进程直接上传。开启回放时,请在渲染进程同步调用
flashcatRum.setUser() 和 flashcatRum.clearUser()。
API 用法见关联登录用户。
主进程 view
主进程没有页面路由。SDK 为每个主进程实例维护一个固定 view,并将主进程的错误和网络请求关联到该 view。 该 view 的主要标识为:
渲染进程仍按 Web SDK 规则创建自己的页面 view。主进程 view 不包含渲染进程页面的 Web Vitals 和用户操作计数。
错误与崩溃
JavaScript 错误
主进程和渲染进程的错误栈都会归一化为稳定路径,可以使用 sourcemap 还原。操作方法见 Electron 错误还原。
原生崩溃
Electron 发生原生崩溃时,会在本地生成 minidump。进程已经终止,无法立即上报,因此 SDK 会在应用下一次启动时读取并上报崩溃事件。 崩溃事件包含:- 崩溃类型和进程信息
- 崩溃线程及其他线程的调用栈
- 加载的原生模块
- 操作系统和 CPU 架构
进程终止
SDK 还会监听渲染进程和 Electron 子进程终止,包括被系统结束、启动失败或沙箱终止等不会产生 minidump 的情况。 这类事件会记录进程类型、退出原因、退出码和页面 URL,但没有调用栈。主进程网络请求
SDK 自动采集主进程发起的http、https、fetch 和 net.fetch 请求,并将它们记录为 RUM resource。
主要字段包括:
- 请求 URL 和方法
- HTTP 状态码
- 请求耗时
- Trace ID 和 Span ID
resource.type 为 native,可以与渲染进程的 fetch 和 xhr 区分。
当前不提供完整 APM。只有 HTTP span 会转换为 RUM resource;IPC 和子进程命令 span 不会上报。
上报与重试
普通 RUM 事件和会话回放使用不同的上报方式:
因此,主进程的
site、proxy、batchSize 和 uploadFrequency 不会改变会话回放的上传行为。私有化回放地址需要在渲染进程单独配置。
相关页面
SDK 接入指南
完成主进程与渲染进程接入。
高级配置
配置上报地址、用户身份和公开 API。
错误还原
还原 JavaScript 和原生崩溃调用栈。
问题排查
排查数据缺失、桥接和回放问题。