Skip to main content
HarmonyOS SDK 将 RUM 数据组装为 NDJSON 批次并上报到 Flashduty。当前版本采集 view、action、resource 和 error 四类 RUM 事件;崩溃和卡死会作为带 is_crash 标记的 error 事件进入同一条管道。

默认上下文

SDK 初始化后,会为每条事件附加通用上下文。
clientToken 只用于上报鉴权,不会写入 RUM 事件。

会话规则

SDK 按会话进行采样和生命周期管理。

View 事件

View 表示用户正在查看的页面或业务视图。你可以通过自动路由追踪或手动 API 生成 view。
View 事件包含:

Action 事件

Action 表示用户操作。即时操作通过 addAction() 记录,带耗时的操作通过 startAction()stopAction() 记录。
支持的 action 类型: Action 事件包含 action.idaction.typeaction.target.nameaction.loading_time。通过 FlashcatRum.trackTap() 自动记录的操作类型为 tap

Resource 事件

Resource 表示网络请求。SDK 会在以下场景生成 resource:
  • 使用 rcp session 并添加 FlashcatTrace.interceptor()
  • 使用 FlashcatHttp.request() 包装 @kit.NetworkKit 请求
  • 通过 GlobalRumMonitor.get().startResource()stopResource() 手动记录
Resource 事件包含: 自动网络采集的资源类型映射: 如果请求失败,SDK 会生成 source: "network" 的 error 事件,并在 error.resource 中附带请求方法、状态码和 URL。

Error 事件

Error 表示手动上报错误、未捕获 ArkTS 异常、网络错误、崩溃或卡死。
支持的 error source: Error 事件包含:

崩溃和卡死

Crash 模块监听 HarmonyOS hiAppEventAPP_CRASHAPP_FREEZE。系统会持久化崩溃并在下一次启动时回放,因此你需要在启动早期启用 Crash 模块。 崩溃事件会通过 RUM error 管道上报:
  • ArkTS / JS 错误栈会按 V8 风格帧解析
  • Native C/C++ 栈会按 #NN pc <address> <lib.so> 形式解析
  • 如果上传了 sourceMaps.mapnameCache.json 和未 strip 的 .so,服务端会还原源文件、函数名、行列号和 Native 符号

上报行为

SDK 以 NDJSON 形式批量上报事件。

当前不采集的内容

当前 HarmonyOS SDK 不自动采集以下数据:
  • Session Replay
  • Web Vitals 或浏览器页面性能指标
  • HarmonyOS 页面渲染性能指标
  • 自动 frustration 事件
  • 网络连接类型变化;connectivity.status 目前保持为 unknown