從友盟 bugly 到 vicrab 看日志處理的演進(jìn)之路
一 引言
在IT人的日常工作中,日志系統(tǒng)的重要性不言而喻, 經(jīng)過十幾年的發(fā)展演變,日志系統(tǒng)的解決方案越來越多,呈現(xiàn)百花齊放的現(xiàn)狀 。傳統(tǒng)的日志大都是針對(duì) B/S 架構(gòu)的解決方案,例如 elk,它是針對(duì)服務(wù)端日志的解決方案,然而,各種日志系統(tǒng)的提供商的解決方案大都是解決”點(diǎn)“的問題,日志數(shù)據(jù)是孤立的,隨著 3G 和 4G 的快速發(fā)展,催生了移動(dòng)端APP的快速發(fā)展,然而,大量的C端用戶的日志數(shù)據(jù)并沒有很好的解決方案出現(xiàn),結(jié)合了B端和C端的日志產(chǎn)品也非常少見。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比紅安網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式紅安網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋紅安地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
二 APP日志解決方案的現(xiàn)狀
絕大部分開發(fā)者會(huì)使用第三方性能監(jiān)控產(chǎn)品來獲取應(yīng)用的崩潰數(shù)據(jù),出現(xiàn)時(shí)間比較早的有友盟,它應(yīng)該是市場(chǎng)占比最大的一個(gè),早期的APP開發(fā)者很多在用它。其次不得不提到騰訊的 bugly,這也是數(shù)據(jù)和服務(wù)做的很專業(yè)的產(chǎn)品,只是目前還處于孵化階段,并沒有大規(guī)模的推廣使用。
下圖是bugly的主界面:
下圖是友盟的數(shù)據(jù)統(tǒng)計(jì)界面:
友盟是出現(xiàn)的比較早的APP分析廠商,主要的功能在于推送和分享服務(wù),崩潰服務(wù)只是其中一個(gè)沒有重點(diǎn)發(fā)展的功能,友盟的崩潰分析服務(wù)相對(duì)過于簡(jiǎn)單。并且不支持ANR 問題,對(duì)于日常的APP錯(cuò)誤日志處理功能則顯得非常的弱小。
bugly也是專門從事APP崩潰分析的產(chǎn)品,相對(duì)友盟,APP的崩潰和錯(cuò)誤收集則顯得更加的專業(yè),可以捕獲到j(luò)ava層和native層的異常,只是目前還是實(shí)驗(yàn)室的一個(gè)孵化的產(chǎn)品,bugly還不太穩(wěn)定。
概括來說,友盟更偏重于數(shù)據(jù)統(tǒng)計(jì),bugly偏重于app的崩潰分析,相比之下,vicrab提供了相對(duì)全面的功能。從客戶端APP到服務(wù)端都提供了比較良好的支持,并且支持多種語言和終端,提供良好的異常日志的分析功能。
三 與VICRAB的比較
先看下bugly的搜索功能,搜索主要有版本,日期和事件幾個(gè)選項(xiàng)。
VICRAB搜索條件比較豐富,還加入了項(xiàng)目異常狀態(tài)管理功能。
友盟更偏重于數(shù)據(jù)統(tǒng)計(jì),bugly偏重于app的崩潰分析,并且他們都側(cè)重點(diǎn)在APP端,而vicrab提供除了APP端的支持外,還提供了服務(wù)端多語言多環(huán)境的SDK支持,以及日志集中化存儲(chǔ)的saas服務(wù),提供良好的分析和篩選界面。
vicrab主頁統(tǒng)計(jì)圖:
vicrab移動(dòng)端的支持目前支持android,ios,我們來看看vicrab 的捕獲范圍對(duì)比。
從表格我們可以看出,友盟,bugly,VICRAB三款產(chǎn)品中,友盟的異常統(tǒng)計(jì)偏向于崩潰處理和統(tǒng)計(jì),對(duì)于線程崩潰,native,anr問題不能支持。不過友盟對(duì)于多終端的SDK支持做的比較全面,除了android,ios原生庫支持,還支持react native 等框架
bugly相比友盟,對(duì)于native,anr問題以及native層的問題處理功能上更加全面,但是bugly缺少了針對(duì)服務(wù)端的異常支持和沒有比較好的日志分析功能。
VICRAB不僅支持移動(dòng)端的日志集成存儲(chǔ)和分析,同樣也提供了功能強(qiáng)大,全面的服務(wù)端日志存儲(chǔ)支持和分析功能。
首先,VICRAB提供多語言環(huán)境的SDK支持。支持的語言有java,php, js 等服務(wù)端開發(fā)語言。針對(duì)后端的異常日志捕獲,除了集中化存儲(chǔ),還提供了異常歸類,異常的詳細(xì)堆棧信息,同時(shí)VICRAB 提供了異常的代碼標(biāo)注功能,便于用戶分析異常日志,快速定位問題,優(yōu)化系統(tǒng)和解決bug 。
VICRAB 針對(duì)java的支持,目前支持4種類型的日志實(shí)現(xiàn)。
VICRAB提供了比較詳細(xì)的集成文檔,集成視頻,以及集成案例,方便用戶快速集成,集成步驟也非常簡(jiǎn)單,只需要三步就可以完成。我們注冊(cè)一個(gè)VICRAB的賬戶,集成一個(gè)logback的案例,看看它的界面體驗(yàn)。
通過測(cè)試發(fā)現(xiàn),友盟的日志數(shù)據(jù)上報(bào)時(shí)間不確定,慢的時(shí)候可達(dá)10分鐘以上,bugly基本控制在1分鐘以內(nèi),VICRAB的上報(bào)速度一般在1分鐘以內(nèi),可以在控制臺(tái)查看到詳細(xì)的錯(cuò)誤分類和堆棧信息。我們看一下具體的信息截圖。
首先是issue列表,VICRAB對(duì)異常進(jìn)行了分類,分為issue和event兩種類型,不同的錯(cuò)誤堆棧日志被標(biāo)注為不同的issue。
以上是issue分類列表,我們點(diǎn)擊其中一個(gè)NumberFormatException進(jìn)去看詳情。
我們可以看到非常詳細(xì)的異常堆棧日志信息,包括環(huán)境,統(tǒng)計(jì)圖,錯(cuò)誤出現(xiàn)的時(shí)間分布圖等,還可以通過標(biāo)簽快速查詢,另外標(biāo)簽是在SDK可以自定義的。
原始數(shù)據(jù)和格式化的數(shù)據(jù)切換,以及詳細(xì)的錯(cuò)誤堆棧信息。包含用戶信息,堆棧信息,http響應(yīng)頭信息 環(huán)境信息,SDK信息等,非常的全面,相比之下,bugly的搜索和標(biāo)簽方面就沒有那么完善了。
下面通過一個(gè)表格來對(duì)比下友盟,bugly ,VICRAB的主要功能
VICRAB的自定義異常通知,周報(bào),月報(bào),強(qiáng)大的標(biāo)簽篩選功能,自定義事件和靈活的收集配置算法,都要優(yōu)與其他產(chǎn)品。
四總結(jié)
通過對(duì)比友盟,bugly,VICRAB三個(gè)產(chǎn)品的比較,我們可以看到日志系統(tǒng)的演進(jìn)之路,三個(gè)產(chǎn)品各自都有自己的特點(diǎn)和長(zhǎng)處,大家在實(shí)際工作中根據(jù)自己的業(yè)務(wù)場(chǎng)景來進(jìn)行選擇。VICRAB是一個(gè)從APP端,服務(wù)端,都支持的產(chǎn)品,同時(shí)也提供了集中化存儲(chǔ),日志分析和個(gè)性化通知等豐富的功能。關(guān)于 VICRAB 這個(gè)產(chǎn)品,后續(xù)會(huì)有更深入的研究報(bào)告呈現(xiàn)給大家。