配置 | 描述 |
id | 必须,string,默认无。 前端性能监控分配的项目 ID。 |
uin | 建议,string,默认取 cookie 中的 UIN 字段。 当前用户的唯一标识符,白名单上报时将根据该字段判定用户是否在白名单中,字段仅支持 字母数字@=._- ,正则表达式: /^[@=.0-9a-zA-Z_-]{1,60}$/ 。 |
reportApiSpeed | 是否开启接口测速。 |
reportAssetSpeed | 可选,boolean,默认 false 是否开启静态资源测速。 |
pagePerformance | 是否开启页面测速。 |
webVitals | 可选,boolean,默认 true。 是否开启 web vitals 测速。 |
onError | 可选,boolean,默认 true。 当前实例是否需要进行错误监听,获取错误日志。 |
aid | 可选,boolean,默认 true。 当前实例是否生成 aid。 |
random | 可选,number,默认 1。 0 - 1 抽样率。 |
spa | 可选,boolean,默认 false。 当前页面是否为单页应用?若为 true,则将监听 hashchange 及 history api,在页面跳转时进行 PV 上报。 |
version | 可选,string,默认 SDK 版本号。 当前上报版本,当页面使用了 pwa 或者存在离线包时,可用来判断当前的上报是来自哪一个版本的代码,仅支持 字母数字.,:_- ,长度在 60 位以内 /^[0-9a-zA-Z.,:_-]{1,60}$/ 。 |
delay | 可选,number,默认 1000ms。 上报节流时间,在该时间段内的上报将会合并到一个上报请求中。 |
repeat | 可选,number,默认 5。 重复上报次数,对于同一个错误超过多少次不上报。 |
env | 可选 enum,默认 Aegis.environment.production。当前项目运行所处的环境。| |
offlineLog | 可选,boolean,默认 false。 是否使用离线日志。 |
offlineLogExp | 可选,number,默认3。 离线日志过期天数。 |
api | 可选,object,默认为{}。相关的配置: apiDetail:可选,boolean,默认:false。api 失败时,是否上报 api 的请求参数和返回值。 retCodeHandler: Function(data: String, url: String, xhr: Object):{isErr: boolean, code: string} ,返回码上报钩子函数。 会传入接口返回数据,请求 url 和 xhr 对象 resourceTypeHandler: Function ,请求资源类型修正钩子函数会传入接口 url,返回值为 static 或 fetch 。详情请参见示例 api.retCodeHandler。reportRequest:boolean,默认:false。开启后,aegis.info 会变成全量上报,不需要白名单配置,并且会上报所有接口的信息(上报接口需开启 reportApiSpeed)。 |
speedSample | 可选,boolean,默认 true。 测速日志是否抽样(限制每条 url 只上报一次测速日志)。 |
hostUrl | 可选,默认是 //aegis.qq.com 。影响全部上报数据的 host 地址,下面几个 URL 地址设置后会覆盖对应的上报地址。 |
url | 可选,string,默认 //aegis.qq.com/collect 。日志上报地址。 设置为空字符串可以不进行日志上报。 |
pvUrl | 可选,string,默认 //aegis.qq.com/collect/pv 。pv 上报地址。 设置为空字符串可以不进行 pv 上报。 |
whiteListUrl | 可选,string,默认 //aegis.qq.com/collect/whitelist 。白名单确认接口。 设置为空字符串可以关闭白名单接口请求 |
offlineUrl | 可选,string,默认 //aegis.qq.com/collect/offline 。
离线日志上报地址。
设置为空字符串可以不进行离线日志上报。 |
eventUrl | 可选,string,默认 //aegis.qq.com/collect/events 。自定义事件上报地址。 设置为空字符串可以不进行自定义事件上报。 |
speedUrl | 可选,string,默认 //aegis.qq.com/speed 。测速日志上报地址。 设置为空字符串可以不进行测速数据上报。 |
customTimeUrl | 可选,string,默认 //aegis.qq.com/speed/custom 。自定义测速上报地址。 设置为空字符串可以不进行自定义测速上报。 |
performanceUrl | 可选,string,默认 //aegis.qq.com/speed/performance 。页面性能日志上报地址。 设置为空字符串可以不进行页面性能上报。 |
webVitalsUrl | 可选,string,默认 //aegis.qq.com/speed/webvitals 。webvitals 上报地址。 设置为空字符串可以不进行web-vitals上报。 |
dbConfig | 可选,Object。 |
ext1 | 可选,string,自定义上报的额外维度,上报的时候可以被覆盖。 |
ext2 | 可选,string,自定义上报的额外维度,上报的时候可以被覆盖。 |
ext3 | 可选,string,自定义上报的额外维度,上报的时候可以被覆盖。 |
{body: {code: 200,retCode: 0,data: {// xxx}}}
new Aegis({// xxxreportApiSpeed: true, // 需要开两个,不然不会有返回码上报reportAssetSpeed: true,api: {retCodeHandler(data, url, xhr) {// data 是string类型,如果需要对象需要手动parse下// url 为请求url// xhr 响应,可以通过xhr.response拿到完整的后台响应try {data = JSON.parse(data)} catch(e) {}return {isErr: data.body.code !== 200 || data.body.retCode !== 0,code: data.body.code}}}})
http://example.com/test-api
。返回的 Content-Type
为 text/html
,这将导致 Aegis 认为该接口返回的是静态资源,可以通过以下方法修正:new Aegis({reportApiSpeed: true, // 需要开两个,不然不会有返回码上报reportAssetSpeed: true,api: {resourceTypeHandler(url) {if (url?.indexOf('http://example.com/test-api') != -1) {return 'fetch';}}}})
www.example.com/user/1000
www.example.com/user/1001
new Aegis({// xxxreportApiSpeed: {urlHandler(url, payload) {if ((/www\\.example\\.com\\/user\\/\\d*/).test(url)) {return 'www.example.com/user/:id';}return url;}}// xxx})
www.example.com/user/1000
www.example.com/user/1001
new Aegis({// xxxpagePerformance: {urlHandler() {if ((/www\\.example\\.com\\/user\\/\\d*/).test(window.location.href)) {return 'www.example.com/user/:id';}}}// xxx})
本页内容是否解决了您的问题?