You need to enable JavaScript to run this app.
导航
验证数据上报
最近更新时间:2024.06.17 20:28:19首次发布时间:2024.05.20 15:42:28

您可以根据业务需求,按照以下模块说明,检查对应模块是否接入成功。

前提条件

完成SDK上报配置

  • 配置设备白名单
    SDK上报配置页面默认配置的采样率较低,在SDK接入测试阶段请配置DID白名单,确保当前设备所有性能数据都采样命中,才能上报到平台查看这些数据。具体请参见创建白名单如何获取DID?
  • 配置各模块采样率
    崩溃是100%上报的,不受采样率控制。除了崩溃,其他监控数据需要在SDK上报配置页面配置采样上报,默认情况下采样命中后才会上报。
    例如,验证启动监控数据前,请在SDK上报配置页面打开总开关,并将用户体验的启动采样率配置为100%。验证完成后,再修改为适合的采样率。具体请参见创建SDK上报配置

JS崩溃

  1. 添加以下代码,等待App发生崩溃。

    // 建议测试时关闭appRecovery// appRecovery.enableAppRecovery(appRecovery.RestartFlag.NO_RESTART)
    throw new Error("Monitor Exception");
    
  2. 重新启动App,SDK会立即上报上次启动期间发生的崩溃,然后在控制台查看上报成功的日志。

Native崩溃

  1. 添加以下代码,等待App发生崩溃。

    // import { process } from '@kit.ArkTS';
    process.kill(11, process.pid)
    
  2. 重新启动App,SDK会立即上报上次启动期间发生的崩溃,然后在控制台查看上报成功的日志。

AppFreeze

  1. 添加以下代码,等待App发生闪退,可适当触摸屏幕。

    // import { systemDateTime } from '@kit.BasicServicesKit';
    let start = systemDateTime.getTime();
    while (start + 10000systemDateTime.getTime()) {}
    
  2. 重新启动App,SDK会上报上次启动期间发生的崩溃,然后在控制台查看上报成功的日志。

  3. 如果发现没有上报,适当等待后再次重新启动App。

启动

  1. 初始化SDK确认开启了启动监控。

    let builder = new APMPlusBuilder("AppID", "AppToken");
    builder.startMonitor = true;//开启启动监控
    
  2. 确认采样命中,确认平台配置了白名单,或者SDK上报配置里的启动配置采样100%。

  3. 数据采集后,会在平台的启动分析查看到数据。

  4. 启动App后,会采集启动耗时上报到平台,默认只采集启动总耗时。

    • 起始时间:用户单击icon的时间。
    • 截止时间:展示第一个页面的时间。

启动自定义打点

自定义启动节点

启动监控支持自定义打点,方法需要配对出现。

LaunchTrace.startSpan("initApm");
LaunchTrace.endSpan("initApm");

添加上述代码后,可以在启动分析启动节点耗时中查看自定义打点的耗时。
图片

自定义启动结束点

默认启动监控通过HiAppEvent的启动数据监控启动结束点,如下方法支持自定义启动结束点。

//初始化设置启动监控自定义上报,表示使用reportLaunchEnd()方法定义启动结束点。需要尽早调用,例如在AbilityStage 的 onCreate 调用。
LaunchTrace.customLaunchEnd(true);

//启动自定义监控结束时间点,代表启动的结束点
LaunchTrace.reportLaunchEnd();

启动数据采集依赖HiAppEvent的启动数据回调,系统回调可能存在延迟导致启动数据上报延迟。HiAppEvent系统回调日志会显示APP_LAUNCH,示例如下所示:

06-17 19:29:43.114   3788-3788    A0001B/APM                     com.apmpl...ony.demo  I     Start --> event: APP_LAUNCH

事件分析

  1. 平台注册事件。在事件管理页面新增事件并配置采样,事件采样命中才会上报。
    图片

  2. 端上自定义事件打点。

    //维度值 string
    let category: object = new Object();
    category['version'] = "2.0";
    //指标值 number
    let metric: object = new Object();
    metric['key'] = 2
    //额外数据 string。不进行聚合,可单点查询从原始日志查看数据
    let extra: object = new Object();
    extra['apm_extra'] = 'extra info'
    //事件名称
    APMPlusAgent.monitorEvent("harmony", category, metric, extra);
    
  3. 数据查看。通过以上自定义事件打点后,可以在平台查看事件信息。
    客户端debug模式下过滤日志A0001B/APM,看到如下事件采样命中的日志,1分钟后即可在平台查看事件数据。

    // 事件 harmony 采样命中sample true,采样没命中sample false
    06-14 18:21:36.625   62396-62396  A0001B/APM                     com.examp...lication  D     Event --> harmony sample true
    

性能数据上报策略

启动和事件等性能数据记录后不会立即上报,每经过60s,聚合触发一次上报。JS崩溃、Native崩溃、AppFreeze是App重启后上报。