Skip to main content

自定义上报

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,
})
提醒
  1. 自定义事件上报,默认日志类型 {level: "info", type: "custom_event"}
  2. 注意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'); /** 此时日志已经报上去了😄**/
  1. complexOperation 同样可以修改为其他的命名。
  2. 自定义测速是用户上报任意值,服务端对其进行统计和计算,因为服务端不能做脏数据处理,因此建议用户在上报端进行统计值限制,防止脏数据对整体产生影响。
  3. 目前 Aegis 只支持 0-60000 的数值计算,如果大于该值,建议进行合理改造。
  4. 高频率的自定义测速上报尽量使用 reportTime。time 和 timeEnd 上报会存在上报值覆盖的问题。比如 aegis.time(aaa), 在调用 aegis.timeEnd(aaa) 之前,又调用了一次 aegis.time(aaa), 则上报的时间为 timeEnd 时间 - 第二次 time 的时间。