tencent cloud

前端性能监控

产品简介
产品概述
产品功能
应用场景
购买指南
计费概述
购买方式
欠费说明
快速入门
操作指南
应用接入
数据总览
页面性能
性能数据分析
异常分析
页面访问
API 监控
静态资源
自定义测速
自定义事件
应用管理
访问管理
告警策略
接入指南
Web 应用场景
小程序场景
API 文档
History
Introduction
API Category
Making API Requests
Console APIs
Business System and Project Information APIs
Custom Speed Test APIs
Custom Event APIs
API Monitoring APIs
Exception Analysis APIs
Page View APIs
Static Resource Monitoring APIs
Log APIs
Page Performance APIs
Data Types
Error Codes
常见问题
产品相关问题
技术排查相关问题
使用相关问题
服务协议
RUM 隐私协议
RUM 数据处理和安全协议
前端性能监控服务协议
终端性能监控隐私协议
终端性能监控数据处理和安全协议

实例方法

PDF
聚焦模式
字号
最后更新时间: 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错误'


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈