mitojs是一款功能豐富的SDK工具,主要的功能就是收集頁(yè)面的用戶點(diǎn)擊行為、路由跳轉(zhuǎn)、接口報(bào)錯(cuò)、代碼報(bào)錯(cuò)等數(shù)據(jù),將收集到的數(shù)據(jù)反饋給服務(wù)端,讓管理人員可以了解用戶訪問頁(yè)面的,了解用戶在站點(diǎn)訪問了哪些內(nèi)容,了解站點(diǎn)異常接口錯(cuò)誤,第一時(shí)間服務(wù)端查看各項(xiàng)頁(yè)面點(diǎn)擊和通信異常問題,如果你需要給自己的軟件附加這種頁(yè)面數(shù)據(jù)收集功能就可以使用mitojs,直接將其部署到自己的軟件就可以正常使用,節(jié)約用戶自己開發(fā)數(shù)據(jù)收集功能的時(shí)間,一鍵導(dǎo)入SDK就可以使用該功能,軟件可以檢測(cè)的頁(yè)面數(shù)據(jù)類型還是很多的!
mitojs軟件功能
1、監(jiān)聽請(qǐng)求錯(cuò)誤
2、console
3、路由跳轉(zhuǎn)
4、代碼報(bào)錯(cuò)
5、click、wx:tab、touchmove
6、資源加載錯(cuò)誤
7、自定義上報(bào)錯(cuò)誤
8、豐富的hooks與配置項(xiàng)支持可高定制化
9、支持IE8和安卓5以上
10、持續(xù)迭代與更新
11、完善的e2e測(cè)試
12、完善的單元測(cè)試(77%~coding)
13、支持原生Web @mitojs/bwser
14、支持Web框架(Vue3、Vue2、React@Next)
15、支持原生微信小程序、支持uni-app等微信小程序框架
mitojs軟件特色
1、dsn服務(wù)地址,上報(bào)接口的地址,post方法默認(rèn)是開啟狀態(tài),為true時(shí),會(huì)將sdk禁用
2、每個(gè)項(xiàng)目對(duì)應(yīng)一個(gè)apikey,用于存放錯(cuò)誤集的唯一標(biāo)識(shí)
3、默認(rèn)不會(huì)在控制臺(tái)打印用戶行為和錯(cuò)誤,為true時(shí)將會(huì)在控臺(tái)打印
4、默認(rèn)關(guān)閉`traceId`,開啟時(shí),頁(yè)面的所有請(qǐng)求都會(huì)生成一個(gè)uuid,放入請(qǐng)求頭中
5、用戶行為存放的最大容量,最大是100,當(dāng)你配置超過100時(shí),最終還是會(huì)設(shè)置成100,一方面是防止占更多的內(nèi)存、一方面是保存超過100條用戶行為沒多大意義
5、所有ajax都會(huì)被監(jiān)聽,不為空時(shí),filterXhrUrlRegExp.test(xhr.url)為true時(shí)過濾
6、鉤子函數(shù),配置發(fā)送到服務(wù)端的xhr
7、可以對(duì)當(dāng)前xhr實(shí)例做一些配置:xhr.setRequestHeader()、xhr.withCredentials
8、鉤子函數(shù),在每次發(fā)送事件前會(huì)調(diào)用param nt 有SDK生成的錯(cuò)誤事件
9、在狀態(tài)小于400并且不等于0的時(shí)候回調(diào)用當(dāng)前hook
10、攔截用戶頁(yè)面的ajax請(qǐng)求,并在ajax請(qǐng)求發(fā)送前執(zhí)行該hook,可以對(duì)用戶發(fā)送的ajax請(qǐng)求做xhr.setRequestHeader
11、在整合上報(bào)數(shù)據(jù)和本身SDK數(shù)據(jù)前調(diào)用,當(dāng)前函數(shù)執(zhí)行完后立即將數(shù)據(jù)錯(cuò)誤上報(bào)至服務(wù)端
12、trackerId表示用戶唯一鍵(可以理解成userId),需要trackerId的意義可以區(qū)分每個(gè)錯(cuò)誤影響的用戶數(shù)量
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一個(gè)包,里面包含了原生瀏覽器、Vue、React、微信小程序的所有監(jiān)控代碼,使用起來比較簡(jiǎn)單,但是微信小程序的包是有大小限制,所以想要盡量限制mitojs的大小,分成:
優(yōu)勢(shì):
為了減少包大小
后續(xù)好,方便添加新功能,如:埋點(diǎn)SDK、node監(jiān)控
案例內(nèi)容
示例頁(yè)面1
請(qǐng)打開控制臺(tái)查看mitojs的調(diào)式結(jié)果,當(dāng)你作頁(yè)面時(shí),控制臺(tái)會(huì)打印你的行為
右邊頁(yè)面會(huì)實(shí)時(shí)打印的你作行為
示例頁(yè)面2
收集平臺(tái)展示
該SDK能收集哪些:下面這些例子給你一一展示:
手動(dòng)上報(bào)
MITO.log
有時(shí)我們需要在某個(gè)業(yè)務(wù)代碼中上報(bào)業(yè)務(wù)或者是埋點(diǎn),這時(shí)可以用到MITO.log手動(dòng)上報(bào),下面這個(gè)例子就是在獲取支付狀態(tài)的接口是否異常,如果異常就上報(bào)異常。
還可以統(tǒng)計(jì)每個(gè)功能的瀏覽次數(shù)(PV),用戶量(UV),在以下代碼中在活動(dòng)頁(yè)面埋點(diǎn),UV的統(tǒng)計(jì)需要依賴trackerId
mitojs常見問題
這個(gè)SDK具體是怎么使用的?
該SDK是為了抓取前端頁(yè)面的錯(cuò)誤,上報(bào)到你所配置的接口。至于服務(wù)端和錯(cuò)誤可視化界面是需要自己實(shí)現(xiàn),適合給有意向自己研發(fā)前端監(jiān)控系統(tǒng)的開發(fā)者使用最佳
這個(gè)SDK的穩(wěn)定如何?能不能用到正式環(huán)境?
目前本人所在的公司的監(jiān)控系統(tǒng)也在使用當(dāng)前SDK,也在迭代中,到目前而言穩(wěn)定還是OK的,而且已經(jīng)有完善的e2e,單測(cè)也coding中,感興趣的可以Fork下來,自己定制