核心配置
核心配置通过ConfigurationBuilder 创建,并传给 Flashcat.initialize()。
Flashcat.initialize() 同一个实例名只会初始化一次。重复初始化会返回已存在实例,不会重新注册功能模块。隐私同意状态
初始化时需要传入TrackingConsent。你也可以在运行时通过 Flashcat.setTrackingConsent() 修改。
RUM 配置
RUM 配置通过RumConfigurationBuilder 创建,并传给 FlashcatRum.enable()。
事件过滤和脱敏
setEventMapper() 可以在事件上报前做轻量处理。返回修改后的事件表示继续上报,返回 null 表示丢弃事件。
全局属性和用户信息
全局属性会合并到后续事件的context 对象中。
id、name 和 email 会写入后续事件的 usr 对象。
Trace 配置
Trace 模块负责生成 W3Ctraceparent 和 tracestate,并把生成的 trace id 和 span id 关联到 RUM resource 的 _dd.trace_id 和 _dd.span_id 字段。tracestate 会携带 Datadog vendor entry:dd=s:{0|1};o:rum。
当前
setFirstPartyHosts() 只由 FlashcatHttp 包装器使用。rcp 拦截器本身就是每个 session 的显式接入点,因此添加拦截器的 session 会对其请求注入 Trace header。请求已带有 traceparent 时,SDK 不会覆盖已有 Trace 上下文;已有 tracestate 会保留其他 vendor,并把更新后的 dd= 成员放在最前。崩溃采集配置
Crash 模块通过 HarmonyOShiAppEvent 监听 APP_CRASH 和 APP_FREEZE。系统会在下一次启动时回放故障事件,SDK 再通过 RUM error 管道上报。
后台和延迟上传
SDK 默认在前台按setBatchUploadFrequencyMs() 的间隔上传,并在应用进入后台时触发 flush()。如果需要由 HarmonyOS WorkScheduler 唤醒上传,可以注册延迟上传任务。
SDK 负责注册 WorkScheduler 任务;你的
WorkSchedulerExtensionAbility 被唤醒后,应调用 Flashcat.flushAndWait() 执行有界批量上传。上传 HarmonyOS 崩溃符号
如需在控制台还原混淆后的 ArkTS 栈和 Native.so 栈,请使用 @flashcatcloud/hvigor-plugin 上传构建产物。
该插件会上传两类文件:
该插件以 npm 包发布(在 npm,不在 ohpm),作为构建期开发依赖安装到工程根目录的
package.json,而不是 oh-package.json5:
hvigorfile.ts 中注册插件:
hvigorfile.ts
flashcatSymbolUploadPlugin() 还接受两个可选参数:buildDir(构建产物目录,默认 build/default)和 pluginVersion(写入上传请求头 DD-EVP-ORIGIN-VERSION 的版本号,默认 0.1.0)。一般无需设置。{endpoint}/sourcemap/upload 发送 multipart/form-data:
上传事件类型: