mitojs是一款功能丰富的SDK工具,主要的功能就是收集页面的用户点击行为、路由跳转、接口报错、代码报错等数据,将收集到的数据反馈给服务端,让管理人员可以了解用户访问页面的,了解用户在站点访问了哪些内容,了解站点异常接口错误,第一时间服务端查看各项页面点击和通信异常问题,如果你需要给自己的软件附加这种页面数据收集功能就可以使用mitojs,直接将其部署到自己的软件就可以正常使用,节约用户自己开发数据收集功能的时间,一键导入SDK就可以使用该功能,软件可以检测的页面数据类型还是很多的!
mitojs软件功能
1、监听请求错误
2、console
3、路由跳转
4、代码报错
5、click、wx:tab、touchmove
6、资源加载错误
7、自定义上报错误
8、丰富的hooks与配置项支持可高定制化
9、支持IE8和安卓5以上
10、持续迭代与更新
11、完善的e2e测试
12、完善的单元测试(77%~coding)
13、支持原生Web @mitojs/bwser
14、支持Web框架(Vue3、Vue2、React@Next)
15、支持原生微信小程序、支持uni-app等微信小程序框架
mitojs软件特色
1、dsn服务地址,上报接口的地址,post方法默认是开启状态,为true时,会将sdk禁用
2、每个项目对应一个apikey,用于存放错误集的唯一标识
3、默认不会在控制台打印用户行为和错误,为true时将会在控台打印
4、默认关闭`traceId`,开启时,页面的所有请求都会生成一个uuid,放入请求头中
5、用户行为存放的最大容量,最大是100,当你配置超过100时,最终还是会设置成100,一方面是防止占更多的内存、一方面是保存超过100条用户行为没多大意义
5、所有ajax都会被监听,不为空时,filterXhrUrlRegExp.test(xhr.url)为true时过滤
6、钩子函数,配置发送到服务端的xhr
7、可以对当前xhr实例做一些配置:xhr.setRequestHeader()、xhr.withCredentials
8、钩子函数,在每次发送事件前会调用param nt 有SDK生成的错误事件
9、在状态小于400并且不等于0的时候回调用当前hook
10、拦截用户页面的ajax请求,并在ajax请求发送前执行该hook,可以对用户发送的ajax请求做xhr.setRequestHeader
11、在整合上报数据和本身SDK数据前调用,当前函数执行完后立即将数据错误上报至服务端
12、trackerId表示用户唯一键(可以理解成userId),需要trackerId的意义可以区分每个错误影响的用户数量
mitojs安装方法
web
使用npm
$ npm i @mitojs/web
使用yarn
$ yarn add @mitojs/web
使用CDN
scpt src="https://cdn.jsdelivr.net/npm/@mitojs/web/dist/web.min.js">
wx-mini
使用npm
$ npm i @mitojs/wx-mini
使用yarn
$ yarn add @mitojs/wx-mini
使用CDN
scpt src="https://cdn.jsdelivr.net/npm/@mitojs/wx-mini/dist/wx-mini.js">
改造原因
一开始只有@zyf2e/mitojs一个包,里面包含了原生浏览器、Vue、React、微信小程序的所有监控代码,使用起来比较简单,但是微信小程序的包是有大小限制,所以想要尽量限制mitojs的大小,分成:
优势:
为了减少包大小
后续好,方便添加新功能,如:埋点SDK、node监控
案例内容
示例页面1
请打开控制台查看mitojs的调式结果,当你作页面时,控制台会打印你的行为
右边页面会实时打印的你作行为
示例页面2
收集平台展示
该SDK能收集哪些:下面这些例子给你一一展示:
手动上报
MITO.log
有时我们需要在某个业务代码中上报业务或者是埋点,这时可以用到MITO.log手动上报,下面这个例子就是在获取支付状态的接口是否异常,如果异常就上报异常。
还可以统计每个功能的浏览次数(PV),用户量(UV),在以下代码中在活动页面埋点,UV的统计需要依赖trackerId
mitojs常见问题
这个SDK具体是怎么使用的?
该SDK是为了抓取前端页面的错误,上报到你所配置的接口。至于服务端和错误可视化界面是需要自己实现,适合给有意向自己研发前端监控系统的开发者使用最佳
这个SDK的稳定如何?能不能用到正式环境?
目前本人所在的公司的监控系统也在使用当前SDK,也在迭代中,到目前而言稳定还是OK的,而且已经有完善的e2e,单测也coding中,感兴趣的可以Fork下来,自己定制