tencent cloud

文档反馈

配置文档

最后更新时间:2024-01-22 19:39:30

    配置说明

    配置文档各配置项说明如下:
    配置
    描述
    id
    必须,string,默认无。
    前端性能监控分配的项目 ID。
    uin
    建议,string,默认取 cookie 中的 UIN 字段。
    当前用户的唯一标识符,白名单上报时将根据该字段判定用户是否在白名单中,字段仅支持字母数字@=._-,正则表达式: /^[@=.0-9a-zA-Z_-]{1,60}$/
    reportApiSpeed
    可选,boolean 或者 object>,默认 false。
    是否开启接口测速。
    reportAssetSpeed
    可选,boolean,默认 false
    是否开启静态资源测速。
    pagePerformance
    可选,boolean 或者 object,默认 true。
    是否开启页面测速。
    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,自定义上报的额外维度,上报的时候可以被覆盖。

    示例

    api.retCodeHandler

    假如后台返回数据为:
    {
    body: {
    code: 200,
    retCode: 0,
    data: {
    // xxx
    }
    }
    }
    业务需要:code 不为200,或者 retCode 不为0,此次请求就是错误的。此时只需进行以下配置:
    new Aegis({
    // xxx
    reportApiSpeed: 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
    }
    }
    }
    })

    api.resourceTypeHandler

    假如接口为:http://example.com/test-api 。返回的 Content-Typetext/html,这将导致 Aegis 认为该接口返回的是静态资源,可以通过以下方法修正:
    new Aegis({
    reportApiSpeed: true, // 需要开两个,不然不会有返回码上报
    reportAssetSpeed: true,
    api: {
    resourceTypeHandler(url) {
    if (url?.indexOf('http://example.com/test-api') != -1) {
    return 'fetch';
    }
    }
    }
    })

    reportApiSpeed.urlHandler

    假如您页面中有 restful 风格的接口,例如:www.example.com/user/1000www.example.com/user/1001
    在上报测速时需要将这些接口聚合:
    new Aegis({
    // xxx
    reportApiSpeed: {
    urlHandler(url, payload) {
    if ((/www\\.example\\.com\\/user\\/\\d*/).test(url)) {
    return 'www.example.com/user/:id';
    }
    return url;
    }
    }
    // xxx
    })

    pagePerformance.urlHandler

    假如您的页面 URL 是 restful 风格的,例如:www.example.com/user/1000www.example.com/user/1001
    在上报页面测速时需要将这些页面地址聚合:
    new Aegis({
    // xxx
    pagePerformance: {
    urlHandler() {
    if ((/www\\.example\\.com\\/user\\/\\d*/).test(window.location.href)) {
    return 'www.example.com/user/:id';
    }
    }
    }
    // xxx
    })
    
    联系我们

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

    技术支持

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

    7x24 电话支持