@mpxjs/mp-api-monitor
v0.0.12
Published
mini program api invoking monitor
Downloads
27
Readme
@mpxjs/mp-api-monitor
在小程序中对于全局API及实例API的调用同运行时性能有很大关联,首先,大部分的全局API调用都比较耗时(超过10ms),过度调用会拖慢js本身的执行,其次,很多API调用本身就与运行时性能存在直接关系,例如实例API中的this.setData
和全局API中的wx.getLocation
等,不当的调用方式会在很大程度上影响到小程序的运行时性能,而这些问题往往在小程序业务开发时会被忽略掉。
为了发现解决业务代码小程序API不当调用的问题,我们设计开发了@mpxjs/mp-api-monitor
SDK,通过该SDK我们能够监听到小程序全局API及实例API的调用,记录调用信息,生成统计摘要,便于开发者发现并定位小程序中存在的不当API调用;同时该SDK支持自定义报警配置,能够便于用户对小程序的API调用情况进行长期监控;最后SDK也在许多层面提供了自定义拓展机制,便于用户进行高度定制的API调用情况监控。
本SDK会对API进行代理,在调用和返回时执行统计逻辑,在一定程度上产生运行时开销,我们强烈建议仅在开发环境下作为问题排查的手段使用本SDK,而不要在生产环境下使用,可以使用Mpx提供的
env条件编译
或者process.env.NODE_ENV
进行环境定义与判断。
安装
npm install --save-dev @mpxjs/mp-api-monitor
使用实例
import {
APIMonitor,
getParallelismRule,
getSizeRule
} from '@mpxjs/mp-api-monitor'
const monitor = new APIMonitor()
const error = (msg) => {
console.error(msg)
}
// 添加报警规则:request并发数不应该超过10
monitor.addWarningRule('request', getParallelismRule({
parallelism: 10,
onWarning: error
}))
// 添加报警规则:setData单次发送数据不应该超过10K
monitor.addWarningRule('setData', getSizeRule({
size: 10000,
count: 1,
onWarning: error
}))
monitor.startRecord()
setTimeout(()=>{
// 也可在任意时机调用相关方法查看API调用情况
console.log(monitor.getSummary())
}, 10000)
API参考
https://github.com/mpx-ecology/mp-api-monitor/blob/master/docs/index.md