tencent cloud

腾讯云可观测平台

动态与公告
产品动态
产品简介
产品概述
产品优势
基本功能
基本概念
应用场景
使用限制
购买指南
云产品监控
应用性能监控
终端性能监控
前端性能监控
云拨测
Prometheus 监控服务
Grafana 服务
事件总线
云压测
快速入门
监控概览
实例分组
云产品监控
应用性能监控
云拨测
云压测
Prometheus 监控服务
Grafana 服务
创建 Dashboard
事件总线
告警服务
云产品监控
云产品监控指标
控制台操作指南
云服务器监控组件
云产品监控对接 Grafana
故障处理
实践教程
应用性能监控
应用性能监控简介
接入指南
控制台操作指南
实践教程
参考信息
常见问题
终端性能监控
终端性能监控概述
控制台操作指南
接入指南
实践教程
前端性能监控
前端性能监控简介
控制台操作指南
接入指南
常见问题
云拨测
产品简介
控制台操作指南
常见问题
云压测
云压测概述
控制台操作指南
实践教程
JavaScript API 列表
常见问题
Prometheus 监控
Prometheus 监控简介
接入指南
控制台操作指南
实践教程
Terraform
常见问题
Grafana 服务
产品简介
控制台操作指南
Grafana 平台常用功能指引
常见问题
Dashboard
什么是 Dashboard
控制台操作指南
告警管理
控制台操作指南
故障处理
常见问题
事件总线
事件总线简介
控制台操作指南
实践教程
常见问题
报表管理
常见问题
腾讯云可观测平台常见问题
告警服务相关
一般性问题
监控图表相关
云服务器监控组件相关
动态阈值告警相关
云监控对接 Grafana 相关
文档阅读指南
相关协议
应用性能监控服务等级协议
APM 隐私协议
APM 数据处理和安全协议
前端性能监控服务等级协议
终端性能监控服务等级协议
云拨测服务等级协议
Prometheus 监控服务服务等级协议
Grafana 服务服务等级协议
云压测服务等级协议
云压测使用限制
Cloud Monitor Service Level Agreement
词汇表

实例方法

PDF
聚焦模式
字号
最后更新时间: 2024-11-01 19:27:48
前端性能监控为您提供多种实例方法用于上报数据,您可以通过实例方法修改实例配置、自定义上报事件、自定义上报测试资源等。
目前 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();


帮助和支持

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

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

文档反馈