# 自定义监控

# 概述


按照自定义监控协议上报即可实现一个新的监控指标,可用于业务错误、业务关键节点等监控场景。



# 功能说明


# 1、添加自定义监控

产品设置-监控项管理,点击 "+添加监控项"添加一个监控项,如图所示。


image.png


其中:

  • 每个监控项以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、设计合理的监控项

自定义监控项很自由,但是设计得合理才更能帮助分析,下面是使用建议。

  • 适合创建独立监控项的场景

独立不相干的信息,如:

    1. 项目中初始化一个SDK,但可能会失败,适合创建一个「sdk初始化失败」监控项
    2. 页面资源命中本地缓存的概率,适合创建一个「资源缓存命中率」监控项
  • 适合在监控项中区分不同子业务的场景

相关信息中的不同场景,如:

    1. sdk初始化失败,有多个sdk需要区分,那么 msg 字段的内容设置为不同的 「sdk名称」 即可
    2. 页面资源缓存命中率,有多个资源要区分,那么 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

})




# 参照