一文搞懂如何長期保持APP 0.1%如下的崩潰率

本文首發於【UC研發效能】公衆號 算法

引言

MTSC2019 中國移動互聯網測試開發大會(Mobile Testing Summit China)由國內最大的測試開發技術社區之一 TesterHome 發起的行業會議,聚焦在軟件測試及應用質量保障。在剛過去的12月14號,MTSC2019深圳站也圓滿結束。
在本次大會上,阿里巴巴無線開發專家黃健基爲你們分享了《對App崩潰Say No! 如何長期保持1‰如下崩潰率》這一主題,揭祕了阿里UC是如何長期保持APP保持千分之一如下的崩潰率的。同時也爲你們介紹了嶽鷹全景監控平臺的建設實踐。本文將提取演講精華分享給你們。markdown


保持千分之一崩潰率的核心重點

打造千分之一崩潰率APP的核心手段,主要有下面3個:網絡

  1. 問題的採集捕獲能力:解決Android崩潰、C++崩潰捕獲難題,破解系統高版本捕獲ANR的限制,全方位監控APP的質量問題
  2. 快速發現問題的能力:解決設備側、網絡側的複雜度,保證第一時間上報異常日誌;結合智能預警功能,快速發現問題並減小用戶影響範圍
  3. 高效解決問題:崩潰日誌提取能力,將混淆代碼、內存地址等還原成可讀的代碼,結合算法進行問題智能聚類,一鍵定位緣由,高效解決問題

下文將按照實時監控平臺的日誌採集上報、日誌清洗提取、數據分析統計、數據展現,這4個核心階段進行闡述。
架構

全面的SDK採集上報能力

SDK採集上報的核心是要完整暴露APP線上質量問題,因此相比通常的CrashSDK,嶽鷹的CrashSDK具有更全面的應用異常監控能力
除了常見的應用崩潰、ANR、iOS的卡死、業務邏輯異常、cocos及U3D異常外,嶽鷹CrashSDK在影響用戶體驗的異常上繼續深挖,經過監控應用的生命週期,將下述異常也監控了起來:函數

  1. 設備重啓,常見的緣由是設備或者第三方rom的兼容性問題致使;
  2. 強制退出,通常是因爲系統或者組件中調用了exit()或者Process.killProcess()函數致使
  3. 低內存致使應用被強殺
  4. 除上述外,其餘緣由致使的應用異常退出

在監控到上述異常產生時,從開發者角度來看,確定採集到的信息是越豐富越好的。因此,嶽鷹CrashSDK採集的信息除了常見的機型、rom和崩潰堆棧外,還包含句柄持有狀況、CPU、內存、磁盤IO等信息也採集了上來,提升了句柄泄露等場景下的異常問題解決。
不一樣業務都具有自身的特性,因此SDK也支持在異常時,業務將本身的特性信息採集上來。
oop


經過上述全面的監控,嶽鷹平臺的數據能很好的呈現出用戶真實的體驗,幫助業務保證崩潰率在千分之一如下。

實時的數據處理鏈路

當應用更新後,它的覆蓋速度也是很是快的,若是咱們不能及時發現的話,將會很容易形成重大事故,因此阿里UC的嶽鷹全景監控平臺經過解決設備及網絡上覆雜的問題,保證SDK實時上報;解決代碼還原的效率問題,同時經過下述的架構,具有了實時的大數據處理能力,幫助業務在1分鐘內發現問題,及時控制故障影響面,保障崩潰率在千分之一下。
測試

智能聚類

你們都知道,日誌剛上來的時候都是很是分散的,對於研發來講,最直接的確定就是將相同崩潰堆棧的問題聚合到一塊兒,因此嶽鷹全景監控平臺也是這麼作的,而且在這方面作了比較多的優化:大數據

  1. 計算特徵值的時候,須要把行號給剔除掉,避免因爲代碼迭代,行號變化致使問題離散
  2. 以業務代碼做爲崩潰點入口,方便業務快速識別是哪一個模塊的崩潰

除此以外,咱們在分析問題的時候,是能夠發現某些問題的共性的,根據這些共性,咱們就能夠在日誌處理的時候識別出他們是啓動崩潰、句柄泄露、內存泄露或者其餘緣由致使的異常並自動打標,幫助研發直接定位出緣由,提升問題分析效率。
爲了知足業務不一樣的需求,嶽鷹全景監控平臺也支持按照業務設置的維度進行聚合。優化

多維的分析定位能力

前面提到的能力讓嶽鷹平臺具有了多維的數據,爲了可以高效定位問題緣由,嶽鷹全景監控平臺將平時的分析經驗沉澱到了平臺上,讓這些數據彷彿會說話通常直接告訴研發問題的緣由。 spa

實時大盤,第一時間發現問題

嶽鷹有一個實時大盤,大盤提供分鐘、小時和天級別的數據,圖中是咱們分鐘級別的實時數據,經過這個大盤,咱們能夠第一時間發現問題。

快速定位TOP問題

在發現問題以後,接下來要作的就是找到緣由,是什麼崩潰致使指標波動。
這裏嶽鷹提供的Top問題列表是按照影響用戶進行TOP問題排序,能夠最直觀一目瞭然找到嚴重問題,逐個解決。並且也在TOP問題列表附上近7天趨勢,便於觀察。

代碼分析,直切要害

肯定問題以後,接下來就是分析緣由了,看代碼就是最直接的辦法了。這裏主要分享一點,嶽鷹咱們對C++場景的崩潰日誌作了優化,支持C++行號的展現,以及inline函數的符號化。

趨勢分析,找準問題

前面講的是一些須要快速或者緊急解決的問題,而實際上有些問題是比較長尾的。這些問題經過分析趨勢,能夠找到變化的時間點,而且經過對比,找到影響因素,例如某次發版新功能引入崩潰,廠商發佈新ROM帶來兼容性問題等。

多維鑽取,分析共性問題

平臺還支持多維度鑽取,分析共性問題。這個主要是考慮,有些崩潰問題是在指定機型、系統版本下面纔會出現的,因此維度統計也是一個經常使用的分析手段。另外,還能夠逐個選中維度,層層分析。

巖鼠雲真機,一鍵復現問題

前面講到,找到共性的機型、ROM等,那麼下一步就是在對應的設備上重現,經過logcat,debug獲取更詳細的錯誤信息。而Android機型很是多,iOS本地調試效率很低,經過【巖鼠雲設備平臺】,能夠快速找到機器。包括修復問題以後的迴歸驗證,也能夠經過雲真機進行。

遠程日誌

在咱們的實踐過程當中還發現,有些線上問題是比較難一次性解決的。一個是單點用戶反饋問題,另外是線上反覆的問題。對於這種場景,咱們提供「遠程日誌」,幫助開發者獲取更詳細的日誌和用戶操做,解決缺乏排查線索的痛點。

極速智能預警

前面講的分析過程,基本都是靠人工的方式去發現問題的。嶽鷹平臺將分析問題的經驗沉澱了下來,提供了智能預警功能,目前支持「自動通知新崩潰」、「波動提醒」,默認這些預警功能一鍵便可開啓。
爲了知足業務不一樣的述求,嶽鷹也提供了豐富的配置,知足不一樣業務個性化的需求。

海外集羣

發展海外市場是大趨勢,包括UC在內也有比較多的海外業務,這個時候若是把日誌從國外直接國內,是會存在如下問題的:
第1、會遇到比較多網絡因素致使的穩定性和效率問題
第2、國際政策對數據管控這塊是比較嚴格的,像印度,他是不容許咱們直接把數據迴流到國內的;

因此嶽鷹平臺提供了了海外集羣,包括日誌上傳及咱們平時的查看都是到這個海外集羣裏面查看;經過這個方式保證了整個海外業務的日誌採集的穩定性和上報的實時性,同時解決了數據迴流帶來的風險;


結束語

除了嶽鷹平臺以外,UC無線效能團隊也帶來了巖鼠雲設備平臺,就兩個平臺的建設過程以及在阿里內部的經驗實踐,在現場與廣大開發者進行了深刻的交流分享,受到廣大開發者的熱烈反響。

現場交流

目前研發效能的嶽鷹全景監控平臺和巖鼠雲設備平臺已經對外開放,目前提供限時免費試用,歡迎你們體驗:
巖鼠:yanshu.effirst.com/
嶽鷹:yueying.effirst.com/


關於UC研發效能

研測領域資深專家團隊,依託UC十餘年移動技術沉澱,全力打造專業的研發效能平臺。服務於阿里巴巴100+產品,爲團隊下降研測成本、提高交付效率,助力產品提高用戶體驗,讓產品交付更好更快更安心。

相關文章
相關標籤/搜索