# 自定义监控
# 概述
按照自定义监控协议上报即可实现一个新的监控指标,可用于业务错误、业务关键节点等监控场景。
# 功能说明
# 1、添加自定义监控
在 产品设置-监控项管理,点击 "+添加监控项"添加一个监控项,如图所示。
其中:
- 每个监控项以category区分(平台自动生成,不可修改)
- 支持一个msg字段用于在同一监控项中下不同子业务区分
- 支持一个「率」和一个「均值」字段的统计(后面将会说到)
- 支持c1~c5 总共5个辅助性字段,可在高级搜索中聚合,因此建议打点可枚举类目数据
# 2、 代码中增加打点
如果你的项目已经初始化了SDK,那么直接通过 report() API上报数据即可,若未初始化SDK,那可以参考《探针API使用入门》先初始化SDK。
示例代码。
__wpk.report({
category: 101, //平台创建时,生成的code
msg: 'source1',
w_succ: 1, // 用于计算率的字段,不需要可不填
wl_avg1: 100, // 可用户计算均值的内容,不需要可不填
c1: 'xx',// 业务字段,用于在日志中展示和辅助分析,没有可不填。
c2: 'xx'
})
# 3、设计合理的监控项
自定义监控项很自由,但是设计得合理才更能帮助分析,下面是使用建议。
- 适合创建独立监控项的场景
独立不相干的信息,如:
- 项目中初始化一个SDK,但可能会失败,适合创建一个「sdk初始化失败」监控项
- 页面资源命中本地缓存的概率,适合创建一个「资源缓存命中率」监控项
- 适合在监控项中区分不同子业务的场景
相关信息中的不同场景,如:
- sdk初始化失败,有多个sdk需要区分,那么 msg 字段的内容设置为不同的 「sdk名称」 即可
- 页面资源缓存命中率,有多个资源要区分,那么 msg 字段的内容设置为不同的 「资源名称」 即可
示例代码。
// a资源
__wpk.report({
category: 100,
msg: 'a.js',
w_succ: 1
})
// b资源
__wpk.report({
category: 100, // 必填,一般是100以上的数字,1~99为预留为系统使用
msg: 'b.css',
w_succ: 0 // 成功为1,失败为0
})
# 4、率、均值如何支持
如下 图1 所示,平台支持自定义一个率和一个均值的监控,那么率和均值如何计算,应该如何打点呢?
# 4.1 、率
- 适用场景
成功率、失败率、缓存命中率 等监控场景
打点示例代码。
// 同样使用资源命中率举例
__wpk.report({
category: 100,
msg: 'a.js',
w_succ: 1 // 命中
})
__wpk.report({
category: 100,
msg: 'a.js',
w_succ: 0 // 未命中
})
说明:
1、平台展示的率计算公式为 spv(w_succ = 1) / pv * 100%
2、w_succ的值可按照你的场景来设计
# 4.2、均值
- 适用场景
耗时、包大小等监控场景
打点示例代码。
__wpk.report({
category: 101,
msg: 'sdk初始化耗时',
wl_avg1: 100 // 耗时100ms
})