tencent cloud

文档反馈

实例方法

最后更新时间:2024-01-22 19:39:30
    前端性能监控为您提供多种实例方法用于上报数据,您可以通过实例方法修改实例配置、自定义上报事件、自定义上报测试资源等。
    目前 RUM 提供的 Aegis 实例方法如下:
    参数
    用途
    setConfig
    传入配置对象,包括用户 ID 和 UIN 等信息
    info
    主要上报字段,用于上报白名单日志。下列两种情况日志才会报到后台:
    1. 打开页面的用户在名单中。
    2. 对应的页面发生了错误。
    infoAll
    主要上报字段,用于上报白名单日志。该上报与 info 唯一的区别:
    info 指定用户上报。
    error
    主要上报字段,用于上报错误信息。
    report
    用来上报任意类型的日志信息。
    reportEvent
    上报自定义事件。
    reportTime
    上报自定义测速资源。
    time
    上报自定义测速资源,与 timeEnd 共同使用。适用于两个时间点之间时长的计算并上报。
    timeEnd
    上报自定义测速资源,与 time 共同使用。适用于两个时间点之间时长的计算并上报。
    destroy
    销毁aegis实例。

    前提条件

    参见 安装和初始化 文档,选择任意一种方式完成前端性能监控 SDK 的安装和初始化。

    实例方法

    setConfig

    该方法用于修改实例配置,使用场景如下:
    1. 可获取到用户 UIN ,可同时传入配置用户 ID 和 UIN 两个实例对象,进行实例化:
    const aegis = new Aegis({
    id: 'pGUVFTCZyewxxxxx',
    uin: '777'
    })
    2. 通常情况下,我们并不能一开始就获取到用户的 uin。若在获取 UIN 的这段时间不进行实例化,这期间发生的错误前端性能监控将无法监听。针对这种情况,我们可以先传入 ID 进行实例化,引用 setConfig 传入 UIN ,示例如下:
    const aegis = new Aegis({
    id: 'pGUVFTCZyewxxxxx'
    })
    
    // 拿到uin之后...
    aegis.setConfig({
    uin: '6666'
    })

    info、infoAll、error 和 report

    这三个方法是前端性能监控提供的主要上报手段。
    // info 可以上报任意字符串,数字,数组,对象,但是只有打开页面的用户在名单中才会上报
    aegis.info('test');
    aegis.info('test', 123, ['a', 'b', 'c', 1], {a: '123'});
    
    // 也可以上报特定的对象,支持用户传ext参数和trace参数
    // 注意这种 case 一定要传 msg 字段
    aegis.info({
    msg: 'test',
    ext1: 'ext1',
    ext2: 'ext2',
    ext3: 'ext3',
    trace: 'trace',
    });
    
    // 不同于 info,infoAll 表示全量上报
    aegis.infoAll({
    msg: 'test',
    ext1: 'ext1',
    ext2: 'ext2',
    ext3: 'ext3',
    trace: 'trace',
    });
    
    // error 用来表示 JS 错误日志,也是全量上报,一般用于开发者主动获取JS异常,然后进行上报
    aegis.error({
    msg: 'test',
    ext1: 'ext1',
    ext2: 'ext2',
    ext3: 'ext3',
    trace: 'trace',
    });
    aegis.error(new Error('主动上报一个错误'));
    
    // report 默认是 aegis.report 的日志类型,但是现在您可以传入任何日志类型了
    aegis.report({
    msg: '这是一个ajax错误日志',
    level: Aegis.LogType.AJAX_ERROR,
    ext1: 'ext1',
    ext2: 'ext2',
    ext3: 'ext3',
    trace: 'trace',
    });

    reportEvent

    该方法可用来上报自定义事件,系统将会自动统计上报事件的各项指标,例如:PV、平台分布等。 reportEvent 可以支持字符串和对象两种类型上报参数。

    字符串类型

    aegis.reportEvent('XXX请求成功');

    对象类型

    ext1、ext2 和 ext3 默认使用 new Aegis 的时候传入的参数,自定义事件上报的时候,可以覆盖默认值。
    aegis.reportEvent({
    name: 'XXX请求成功', // 必填
    ext1: '额外参数1',
    ext2: '额外参数2',
    ext3: '额外参数3',
    })
    注意:
    额外参数的三个 key 是固定的,目前只支持 ext1、ext2 和 ext3 。

    reportTime

    该方法可用来上报自定义测速,例如:
    // 假如‘onload’的时间是1s
    aegis.reportTime('onload', 1000);
    
    或者如果需要使用额外参数,可以传入对象类型参数,ext1,ext2,ext3 会覆盖默认值:
    aegis.reportTime({
    name: 'onload', // 自定义测速 name
    duration: 1000, // 自定义测速耗时(0 - 60000)
    ext1: 'test1',
    ext2: 'test2',
    ext3: 'test3',
    });
    说明:
    onload 可以修改为其他的命名。

    time 和 timeEnd

    该方法同样可用来上报自定义测速,适用于两个时间点之间时长的计算并上报,例如:
    aegis.time('complexOperation');
    /**
    * .
    * .
    * 做了很久的复杂操作之后。
    * .
    * .
    */
    aegis.timeEnd('complexOperation'); /** 此时日志已经报上去了**/
    说明:
    complexOperation 可以修改为其他的命名。 自定义测速是用户上报任意值,服务端对其进行统计和计算。由于服务端不能做脏数据处理,建议用户在上报端进行统计值限制,防止脏数据对整体产生影响。 目前 Aegis 只支持 0 - 60000 的数值计算,如果大于该值,建议进行合理改造。

    destroy

    销毁实例进程,销毁后数据不再上报,并且 Aegis 不再收集用户数据。
    aegis.destroy();
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持