自定义上报
SDK提供了丰富的自定义上报接口供用户使用。
自定义日志上报
info、report、error
这三个方法是SDK提供的主要的自定义日志上报手段,使用方法如下:
Aegis.info('上报一条日志');
Aegis.error('上报一条错误日志');
Aegis.report('上报一条任意日志');
// 也可以上报下边的日志格式
Aegis.info({
msg: 'xxx', // 推荐设置,不设置,上报的 message 为空。
[key: string]: any,
});
// 上报错误日志,错误级别为 custom_error
Aegis.error({
msg: '错误日志信息', // 推荐设置,不设置,上报的 message 为空。
[key: string]: any,
});
// 用户可以自定义report方法的type和level
Aegis.report({
msg: '这是一个ajax错误日志', // 推荐设置,不设置,上报的 message 为空。
[key: string]: any,
});
提醒
建议report方法使用Aegis内部规定的 type 和 level,如果随意上报,会影响筛选
自定义事件上报
reportEvent
该方法可用来上报自定义事件,平台将会自动统计上报事件的各项指标,诸如:PV、平台分布等
reportEvent 可以支持两种类型上报参数类型,一种是字符串类型
aegis.reportEvent('XXX请求成功');
一种是对象类型,ext1 ext2 ext3 默认使用 new Aegis 的时候传入的参数,自定义事件上报的时候,可以覆盖默认值。
Aegis.reportEvent({
name: 'XXX请求成功', // 必填
ext1: 'test1',
ext2: 'test2',
ext3: 'test3',
msg: 'xxx',
[key: string]: any,
})
提醒
- 自定义事件上报,默认日志类型 {level: "info", type: "custom_event"}
- 注意ext1,ext2, ext3的值请不要上报离散随机值,如耗时、活动id这种,如需上报请走[key: string]: any的键值对;
自定义测速
reportTime
该方法可用来上报自定义测速,例如:
// 假如‘onload’的时间是1s
aegis.reportTime('onload', 1000);
或者如果需要使用额外参数,可以传入对象类型参数,ext1,ext2,ext3 会覆盖默认值:
aegis.reportTime({
name: 'onload', // 自定义测速名称
duration: 1000, // 自定义测速耗时(0 - 60000)
ext1: 'test1',
ext2: 'test2',
ext3: 'test3',
[key: string]: any,
});
time、timeEnd
该方法同样可用来上报自定义测速,适用于两个时间点之间时长的计算并上报,例如:
aegis.time('complexOperation');
/**
* .
* .
* 做了很久的复杂操作之后。。。
* .
* .
*/
aegis.timeEnd('complexOperation'); /** 此时日志已经报上去了😄**/
- complexOperation 同样可以修改为其他的命名。
- 自定义测速是用户上报任意值,服务端对其进行统计和计算,因为服务端不能做脏数据处理,因此建议用户在上报端进行统计值限制,防止脏数据对整体产生影响。
- 目前 Aegis 只支持 0-60000 的数值计算,如果大于该值,建议进行合理改造。
- 高频率的自定义测速上报尽量使用 reportTime。time 和 timeEnd 上报会存在上报值覆盖的问题。比如 aegis.time(aaa), 在调用 aegis.timeEnd(aaa) 之前,又调用了一次 aegis.time(aaa), 则上报的时间为 timeEnd 时间 - 第二次 time 的时间。