tencent cloud

文档反馈

实例方法

最后更新时间:2024-06-07 16:25:54
    前端性能监控为您提供多种实例方法用于上报数据,您可以通过实例方法修改实例配置、自定义上报事件、自定义上报测试资源等。
    目前 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: ['1'], #日志等级,具体取值可参考日志等级
    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();

    日志等级

    键(level)
    值(name)
    1
    '白名单日志'
    2
    '一般日志'
    4
    '错误日志'
    8
    'Promise 错误'
    16
    'Ajax 请求异常'
    32
    'JS 加载异常'
    64
    '图片加载异常'
    128
    'css 加载异常'
    256
    'console.error'
    512
    '音视频资源异常'
    1024
    'retcode 异常'
    2048
    'aegis report'
    4096
    'PV'
    8192
    '自定义事件'
    16384
    '小程序 页面不存在'
    32768
    ''websocket错误'
    65536
    'js bridge错误'
    
    联系我们

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

    技术支持

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

    7x24 电话支持