Harmony SDK接入
APM Harmony SDK拥有以下应用监控能力:采集上报App崩溃、卡顿、错误信息、网络请求、终端设备、自定义事件等。
支持平台
API 12及以上。
传输协议
HTTPS
版本更新说明
sdk如何处理个人信息请参考华为云应用性能分析服务数据采集SDK隐私声明。
您集成和使用华为的sdk时需要遵从个人信息保护基本要求,详情请参考华为云应用性能分析服务数据采集SDK开发者合规指南。
集成SDK
- 项目引入Harmony SDK。
方法一:从Harmony仓库拉取SDK。
- 使用如下命令,从Harmony仓库拉取SDK。
ohpm install apm_harmony_sdk
- 配置文件中添加依赖并引入SDK。
在app/oh-package.json5中添加依赖 dependencies { ... "apm_harmony_sdk": "2.0.1" ... } // 在终端中运行以下命令安装SDK ohpm install
方法二:手动引入SDK。
- 下载应用性能监控SDK包。
- 将下载到的har静态库文件添加到您的项目工程中(以下以根目录下的plugin文件夹为例)。
- 在app/oh-package.json5文件中添加依赖。
dependencies { ... "apm_harmony_sdk": "file:../plugin/apm_harmony_sdk.har" // HAR包存放地址 ... }
- 在终端中运行以下命令使能SDK。
ohpm install
- 使用如下命令,从Harmony仓库拉取SDK。
- 数据上报与获取网络状态需要在module.json5中打开相关权限,文件路径application->src->main->module.json5。
"requestPermissions":[ { "name": "ohos.permission.INTERNET" }, { "name": "ohos.permission.GET_NETWORK_INFO" } ],
配置参数
- 登录APM控制台,创建Harmony App应用,详细操作参见Harmony快速接入。
- 下载配置文件apm-sdk-config.json,并将文件拖入项目资源目录中,文件路径src->main->resources->rawfile。
表2 鸿蒙配置参数列表 配置参数
说明
是否必填
默认值
appId
APM移动端AppID
是
-
authorization
用于App认证
是
-
region
上报APM所处的region,目前支持cn-north-4
是
-
uid
用户自定义ID
否
-
tag
用户自定义标签,多个时使用英文逗号隔开
否
-
url
要上报APM的公网地址域名
否
-
networkWhiteList
网络监控白名单,排除监控
否
-
cacheThreshold
上报缓存阈值
否
200
timeInterval
定时上报时间间隔
否
60
reportBackground
是否开启App进入后台时上报
否
true
logLevel
调试日志等级:debug|info|warn|error|off
否
off
enableNetwork
使能网络采集
否
false
enableCrash
使能崩溃采集
否
false
enableANR
使能卡顿采集
否
false
enableError
使能错误采集
否
false
enableDevice
使能终端设备采集
否
false
enableEvent
使能用户自定义统计
否
false
traceType
trace类型:otel\apm
否
apm
SDK使能
- 引入依赖模块。
import { APMSDK } from "apm_harmony_sdk";
- 启动及自定义参数设置。
// 启动SDK,在onCrate函数中添加以下代码: APMSDK.start(this.context.getApplicationContext()); // 设置自定义ID APMSDK.setUid(自定义ID); // 设置自定义标签 APMSDK.addTag(自定义标签);
其他方法
- 自定义上报错误数据。
// 在try...catch...中添加捕获错误并上报到APM平台 // 1.捕获Error类型 import { APMSDK } from "apm_harmony_sdk"; try { ... } catch(e) { APMSDK.reportError(e); } // 2.捕获BusinessError类型 const response = await session.fetch(request).then((rep: rcp.Response) => { ... }).catch((err: BusinessError) => { ... APMSDK.reportBusinessError(err); });
- 使用rcp拦截器,上报API数据到APM平台。
// 代码示例: import { APMRcpInterceptor, ResponseCache } from "apm_harmony_sdk"; async function testInterceptor() { const cache: ResponseCache = new ResponseCache(); const session = rcp.createSession({ interceptors: [new APMRcpInterceptor(cache)] }); const response = await session.get('上报地址'); }
- 自定义埋点,主动上报数据。
// 添加自定义事件 APMSDK.event(自定义事件名, 自定义事件值);