配置说明
配置文档各配置项说明如下:
配置 | 描述 |
id | 必须,string,默认 无 。 开发者平台分配的应用上报 ID。 |
uin | 建议,string,默认取 cookie 中的 UIN 字段。 当前用户的唯一标识符,白名单上报时将根据该字段判定用户是否在白名单中,字段仅支持 字母数字@=._- ,正则表达式:/^[@=.0-9a-zA-Z_-]{1,60}$/ 。 |
onError | 可选,boolean,默认 true。 当前实例是否需要进行错误监听,获取错误日志。 |
reportApiSpeed | 可选,boolean,默认 false。 是否开启接口测速。 |
reportAssetSpeed | 可选,boolean,默认 false。 是否开启静态资源测速。 |
reportLoadPackageSpeed | 可选,boolean,默认 false。 是否开启包下载耗时上报。 |
pagePerformance | 可选,boolean,默认 true。 是否开启页面测速。 |
version | 可选,string,默认 sdk 版本号。 当前上报版本,当页面使用了 pwa 或者存在离线包时,可用来判断当前的上报是来自哪一个版本的代码,仅支持 字母数字.,:_- ,长度在 60 位以内 /^[0-9a-zA-Z.,:_-]{1,60}$/ 。 |
delay | 可选,number,默认 1000 ms。 上报节流时间,在该时间段内的上报将会合并到一个上报请求中。 |
repeat | 可选,number,默认 5。 重复上报次数,对于同一个错误超过多少次不上报,同一个接口上报测速数据的次数。 |
env | |
random | 可选,number,默认 1。 0 - 1 抽样率。 0 表示全部不上报。 |
spa | 可选,boolean,默认 false。 是否在小程序页面跳转时进行 PV 上报。 |
pageUrl | 可选,string,默认是小程序 getCurrentPages。 修改上报数据中页面地址from,开发者可以主动对数据进行聚合和降低维度 |
websocketHack | 可选,boolean,默认 false。 是否开启 websocket 监控。开启该选项后,将会对 webscoket 连接断开状态进行监控,但是新建操作仍需要自定义监控。 |
hostUrl | 可选,默认是 https://aegis.qq.com 。影响全部上报数据的 host 地址,设置 hostUrl 后,下面几个 URL 地址都会被覆盖。 |
url | 可选,string,默认 https://aegis.qq.com/collect 。 日志上报地址。 设置为空字符串可以不进行日志上报。 |
pvUrl | 可选,string,默认 https://aegis.qq.com/collect/pv 。 pv 上报地址。 设置为空字符串可以不进行 pv 上报。 |
whiteListUrl | 可选,string,默认 https://aegis.qq.com/collect/whitelist 。白名单确认接口, 设置为空字符串可以关闭白名单接口请求。 |
eventUrl | 可选,string,默认 https://aegis.qq.com/collect/events 。自定义事件上报地址。 设置为空字符串可以不进行自定义事件上报。 |
speedUrl | 可选,string,默认 https://aegis.qq.com/speed 。测速日志上报地址。 设置为空字符串可以不进行测速数据上报。 |
customTimeUrl | 可选,string,默认 https://aegis.qq.com/speed/custom 。自定义测速上报地址。 设置为空字符串可以不进行自定义测速上报。 |
performanceUrl | 可选,string,默认 https://aegis.qq.com/speed/performance 。设置页面性能日志上报地址。 设置为空字符串可以不进行页面性能上报。 |
setDataReportUrl | 可选,string,默认 https://aegis.qq.com/speed/speed/miniProgramData 。设置小程序 setData 性能日志上报地址。 |
setDataReportConfig | 可选,object,默认为 {} 。相关的配置:disabled:可选,Boolean,默认 false。是否禁用 setData 数据上报。 timeThreshold:可选,Number,单位为ms,默认值为30。上报的耗时阈值,表示仅上报更新耗时超过该阈值的数据。 withDataPaths:可选,Boolean,默认为 true。是否上报本次更新的字段信息。 |
api | 可选,object,默认为 {} 。相关的配置:apiDetail:可选,boolean,默认 false。上报 api 信息的时候,是否上报 api 的请求参数和返回值。 enableResDetail:可选,boolean,默认 false。用于控制是否上报 API 返回体中除了 data 之外的包体属性。 retCodeHandler: Function(data: String, url: String, xhr: Object):{isErr: boolean, code: string} , 返回码上报钩子函数。会传入接口返回数据,请求 url 和 xhr 对象;详情请参见示例 api.retCodeHandler。reqParamHandler:Function(data: any, url: String) 上报请求参数的处理函数,可以对接口的请求参数进行处理,方便用户过滤上报请求参数的信息。 resBodyHandler:Function(data: any, url: String) 上报 response 返回 body 的处理函数,可以对接口返回值的 response body 进行处理,只上报关键信息。若开启 enableResDetail,可以捕获小程序接入安全网关后的全部返回的内容,不仅是 res data,另外在请求日志的写入上也会有对应反馈。 resourceTypeHandler:Function,请求资源类型修正钩子函数会传入接口 url,返回值为 static 或fetch 。reportRequest:boolean,默认为 false。开启后,aegis.info 会变成全量上报,不需要白名单配置,并且会上报所有接口的信息(上报接口需开启 reportApiSpeed)。 reqHeaders:Array 需要上报的 HTTP 请求 request headers 列表。 resHeaders:Array 需要上报的 HTTP 请求 response headers 列表。如果开发者需要获取的字段非 “simple response header”,需要给在返回头中给字段添加 Access-Control-Expose-Headers。 |
ext1 | 可选,string,自定义上报的额外维度,上报的时候可以被覆盖。 |
ext2 | 可选,string,自定义上报的额外维度,上报的时候可以被覆盖。 |
ext3 | 可选,string,自定义上报的额外维度,上报的时候可以被覆盖。 |
示例
api.retCodeHandler
假如后台返回数据为:
{body: {code: 200,retCode: 0,data: {// xxx}}
业务需要:code 不为200,或者 retCode 不为0,此次请求就是错误的。此时只需进行以下配置:
new Aegis({// xxxreportApiSpeed: true, // 需要开两个,不然不会有返回码上报reportAssetSpeed: true,api: {retCodeHandler(data) {// 注意这里拿到的data是string类型,如果需要对象需要手动parse下try {data = JSON.parse(data)} catch (e) {}return {// isErr 如果是 true 的话,会上报一条 retcode 异常的日志。isErr: data.body.code !== 200 || data.body.retCode !== 0,code: data.body.code}}}})