source: "harmony" 标识数据来源。
当前 SDK 模块版本为
0.1.3。示例使用 @flashcatcloud/core、@flashcatcloud/rum、@flashcatcloud/trace 和 @flashcatcloud/crash 四个模块。前提条件
接入前,请先完成以下准备:- 在 Flashduty 控制台创建或选择一个 RUM 应用,并获取 Application ID 和 Client Token
- 确认应用可以访问
https://browser.flashcat.cloud/api/v2/rum - 在宿主应用中声明
ohos.permission.INTERNET权限,用于 SDK 批量上报数据 - 使用 HarmonyOS NEXT / Stage 模型工程,并在应用启动早期完成 SDK 初始化
安装 SDK
在应用模块的oh-package.json5 中添加需要的 Flashduty 模块。只接入 RUM 时至少需要 core 和 rum;需要网络 Trace 或崩溃采集时再添加对应模块。
oh-package.json5
初始化 SDK
建议在AbilityStage.onCreate 中初始化 SDK。这样可以在页面、网络请求和异常发生前完成核心实例、RUM、Trace 和 Crash 功能注册。
MyAbilityStage.ets
采集页面视图
如果应用使用 ArkUIrouter,请在 UI 页面拿到 UIContext 后启动自动视图追踪。该能力只有在 RUM 配置中启用 setTrackNavigation(true) 后才会生效。
pages/Index.ets
routerPageUpdate:
如果你的页面没有使用
router,可以使用手动 API 管理视图。
采集用户操作
启用setTrackUserInteractions(true) 后,可以通过 FlashcatRum.trackTap() 在统一点击处理器中记录点击事件。该方法不会自动遍历所有组件,你需要在按钮或公共事件封装处显式调用。
GlobalRumMonitor 手动记录即时操作或带耗时的操作。
采集网络请求和 Trace
HarmonyOS SDK 提供两种网络接入方式。rcp 拦截器
如果应用使用@kit.RemoteCommunicationKit 的 rcp,在 session 中添加 FlashcatTrace.interceptor()。拦截器会注入 W3C traceparent 和 tracestate,并把请求生命周期发送给 RUM 生成 resource 事件。
FlashcatHttp 包装器
如果应用使用@kit.NetworkKit,可以用 FlashcatHttp.request() 替代 http.createHttp().request(...)。该包装器会在请求完成或失败时生成 RUM resource 或 network error。
traceparent 和 tracestate 只有在追踪同意状态为 TrackingConsent.GRANTED 时才会注入。FlashcatHttp 还会按 setFirstPartyHosts() 限制注入域名;未配置一方域名时会对所有 host 注入。请求已带有 traceparent 时,SDK 不会覆盖已有 Trace 上下文。FlashcatTrace.getHeaders() 获取包含 traceparent 和 tracestate 的手动注入请求头。
关联用户信息
登录后,你可以设置当前用户。SDK 会把用户字段写入后续 RUM 事件的usr 对象。
验证接入
完成接入后,可以按以下方式验证:- 在初始化配置中临时启用
setVerbose(true),通过 HiLog 查看Flashcat标签日志 - 打开应用并触发页面切换、按钮点击、网络请求或手动错误
- 在 Flashduty RUM 应用中筛选
source:harmony,确认出现 view、action、resource 或 error 事件 - 对网络请求检查后端 Trace 是否收到
traceparent - 触发 Crash 功能后重新启动应用;HarmonyOS 系统会在下一次启动时回放崩溃事件
下一步
高级配置
配置采样率、隐私同意、事件过滤、Trace 和崩溃符号上传。
兼容性
了解支持的 HarmonyOS 工程、Kit、权限和当前限制。
数据收集
查看 SDK 自动和手动采集的事件类型、字段与上报行为。