精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

移動端監控體系之技術原理剖析

移動開發 移動應用
在這樣一個注重用戶體驗的時代,APM 技術快速發展,國內更是百花齊放,最近對各個公司的 APM 產品有一個調研,并在此基礎上進行了自己的實踐。這里就從 iOS 的角度出發,談談自己對移動端 APM 的技術上的理解,并提供相對應的實例。

[[184536]]

在這樣一個注重用戶體驗的時代,APM 技術快速發展,國內更是百花齊放,最近對各個公司的 APM 產品有一個調研,并在此基礎上進行了自己的實踐。這里就從 iOS 的角度出發,談談自己對移動端 APM 的技術上的理解,并提供相對應的實例。

何為 APM

APM 的全稱是Application performance management,即應用性能管理,通過對應用的可靠性、穩定性等方面的監控,進而達到可以快速修復問題、提高用戶體驗的目的。

國內各大公司都有自己的一套監控體系,這個系統可能是自己研發,也可能是第三方提供,當然對于這個數據為王的時代,很多有實力的公司傾向于自主研發,掌握核心數據。比較有代表性的 APM 產品有:聽云、阿里百川、騰訊 bugly、NewRelic、OneAPM、網易云捕等

說到監控,那么指標是我們所關注的呢?如下所示

  • 網絡請求:成功率、狀態碼、流量、網絡響應時間、HTTP與HTTPS的 DNS 解析、TCP握手、SSL握手(HTTP除外)、首包時間等時間
  • 界面卡頓、卡頓堆棧
  • 崩潰率、崩潰堆棧
  • Abort 率:也就是由于內存過高的等原因,被系統殺死的情況
  • 交互監控:頁面加載時間、頁面的交互痕跡
  • 維度信息:地域、運營商、網絡接入方式、操作系統、應用版本等
  • 其他:內存、幀率、CPU使用率、啟動時間、電量等

聊聊原理

卡頓檢測

當應用發生卡頓的時候,一般會伴隨著掉幀,所以幀率是最容易想到的指標來判斷卡頓。對于線下的測試環境,我們可以使用幀率來對開發做一些提示,告訴他們可能發生了卡頓。但是幀率不穩定性較高,所以一般會采取另一種方式來做卡頓檢測。那就是Runloop,對于細節可以查看 Runloop 源碼,會發現對于事件的處理主要就是在kCFRunLoopBeforeSources和kCFRunLoopBeforeWaiting狀態之間,還有kCFRunLoopAfterWaiting之后。那我們就可以對兩個狀態進行監控,如果消耗時間太久,就代表著卡頓的發生。 

 

 

阿里百川 

阿里百川

上圖摘自阿里百川,如圖所示,我們會對卡頓次數做一個判斷,如果次數為1,但時間超時,則為單次耗時較長的卡頓,如果次數到達閥值,則證明是連續短時間卡頓。

當卡頓發生之后,我們為了定位,會收集當時的一個堆棧情況,在此你可以使用 PLCrashReporter 來做,也可以自己研發一個堆棧收集庫(可參考http://www.jianshu.com/p/7e4c7b94ca36來做)

對于實例,網上已經有很多開源的項目,你可以參考https://github.com/suifengqjn/PerformanceMonitor

崩潰檢測

對于崩潰的情況,一般是由 Mach異常或 Objective-C 異常(NSException)引起的。我們可以針對這兩種情況抓取對應的 Crash 事件。

Mach 異常捕獲

如果想要做mach 異常捕獲,需要注冊一個異常端口,這個異常端口會對當前任務的所有線程有效,如果想要針對單個線程,可以通過 thread_set_exception_ports注冊自己的異常端口,發生異常時,首先會將異常拋給線程的異常端口,然后嘗試拋給任務的異常端口,當我們捕獲異常時,就可以做一些自己的工作,比如,當前堆棧收集等。

對于如何注冊一個異常端口,這里有示意圖和 PLCrashReporter https://github.com/plausiblelabs/plcrashreporter可以參考 

 

 

 

Unix 信號捕獲

對于Mach 異常,操作系統會將其轉換為對應的 Unix信號,所以如果你對Mach不熟悉的話,也可以通過注冊signalHandler的方式來做信號異常。對于實例,你可以參考https://github.com/xcysuccess/iOSCrashUncaught

 

  1. signal(SIGHUP, signalHandler); 
  2.  
  3. signal(SIGINT, signalHandler); 
  4.  
  5. signal(SIGQUIT, signalHandler); 
  6.  
  7.   
  8.  
  9. signal(SIGABRT, signalHandler); 
  10.  
  11. signal(SIGILL, signalHandler); 
  12.  
  13. signal(SIGSEGV, signalHandler); 
  14.  
  15. signal(SIGFPE, signalHandler); 
  16.  
  17. signal(SIGBUS, signalHandler); 
  18.  
  19. signal(SIGPIPE, signalHandler);  

NSException 捕獲

對于NSException異常,也比較容易處理,通過注冊NSUncaughtExceptionHandler捕獲異常信息即可,將拿到的NSException細節寫入Crash日志,上傳到后臺做數據分析

  1. // register the uncaught exception handler 
  2.  
  3. SetUncaughtExceptionHandler(&handler);  

Abort 率檢測

目前對于內存過高被殺死的情況是沒有辦法直接統計的,一般通過排除法來做百分比的統計,原理如下

  • 程序啟動,設置標志位
  • 程序正常退出,清楚標志
  • 程序Crash,清楚標志
  • 程序電量過低導致關機,這個也沒辦法直接監控,可以加入電量檢測來輔助判斷
  • 第二次啟動,標志位如果存在,則代表Abort一次,上傳后臺做統計 

 

 

阿里百川 

阿里百川

交互監控

對于頁面的加載時間,這個比較容易實現,直接通過Runtime hook對應的生命周期方法即可,比如 viewDidLoad、viewWillAppear等

對于用戶的交互痕跡,比如點擊了那個按鈕、跳轉到了那個頁面,這些信息偏于用戶行為的收集,我們也獨立研發了一個無埋點的SDK,專門來做用戶行為數據的收集與分析,核心也是基于 hook AOP的思想。細節可以參考我同事的作品

網絡監控

對于成功率、狀態碼、流量,以及網絡的響應時間之類的,我們可以主要可以通過兩種方式來做

  • 針對URLConnection、CFNetwork、NSURLSession三種網絡做Hook,hook的具體技術可以是method swizzle 也可以是Proxy、Fishhook之類的
  • 也可以使用 NSURLProtocol 對網絡請求的攔截,進而得到流量、響應時間等信息,但是NSURLProtocol有自己的局限,比如NSURLProtocol只能攔截NSURLSession,NSURLConnection以及UIWebView,但是對于CFNetwork則無能為力

對于第一種方式可以Hook哪些方法的,可以參考這個圖 

 

 

 

對于 HTTP與HTTPS 的 DNS 解析、TCP握手、SSL握手(HTTP除外)、首包時間等時間的統計,稍有難度 

 

 

 

但是,因為我們所使用的URLConnection、CFNetwork、NSURLSession底層都是 BSDSocket,所以可以嘗試在socket上動手腳來實現效果,類似于通過ViewController的生命周期方法來統計頁面加載時間的做法,我們Hook socket相關的方法來做,比如通過hook socket連接時的 connect方法,拿到tcp握手的起始時間,通過hook SSLHandshake方法,在SSLHandshake執行的時候拿到 SSL握手的起始時間等。目前聽云已經提供了 HTTP 的分段時間查詢功能,大家去體驗下

  1. int connect(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(connect); 
  2.  
  3. OSStatus SSLHandshake(SSLContextRef ctx)  

但是對于 iOS 9 Apple 加入 ATS 新特性,并要求開發者使用 HTTPS,我在 iOS9、10上對 HTTPS 網絡請求Hook socket方法時候,有一些方法hook 失效,猜想應該是Apple 進行了加固、加密,導致一些系統方法沒辦法hook,所以在 iOS9、10 上無法通過socket來取得HTTPS網絡的分段時間

不過apple在 iOS 10 推出一個API,可以在 iOS10 版本以上進行網絡信息的收集

  1. - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metrics 

打印結果如下

  1. (Fetch Start) 2017-02-24 09:03:06 +0000 
  2.  
  3. (Domain Lookup Start) 2017-02-24 09:03:06 +0000 
  4.  
  5. (Domain Lookup End) 2017-02-24 09:03:06 +0000 
  6.  
  7. (Connect Start) 2017-02-24 09:03:14 +0000 
  8.  
  9. (Secure Connection Start) 2017-02-24 09:03:14 +0000 
  10.  
  11. (Secure Connection End) 2017-02-24 09:03:16 +0000 
  12.  
  13. (Connect End) 2017-02-24 09:03:16 +0000 
  14.  
  15. (Request Start) 2017-02-24 09:03:16 +0000 
  16.  
  17. (Request End) 2017-02-24 09:03:16 +0000 
  18.  
  19. (Response Start) 2017-02-24 09:03:16 +0000 
  20.  
  21. (Response End) 2017-02-24 09:03:16 +0000  

當然,對于網絡各層次的時間獲取,如果你有好的方案,希望您可以留言告知。同時對于一些維度信息和內存等基礎指標,很容易獲取,這里就不細談了

大禮包

在調研和學習APM技術的過程中,發現了很多優秀的博客,所以在此推薦給大家,有需要的可以自取

  • 蘑菇街移動端全鏈路跟蹤保障體系

http://t.cn/R5whClL

  • 美團外賣移動端性能監測體系實現

http://t.cn/RIUcX0o

  • 微信讀書 iOS 質量保證及性能監控

http://t.cn/RibKdFW

  • 網易NeteaseAPM iOS SDK技術實現分享

http://t.cn/R5ZyWVt

  • 阿里百川碼力APP監控來了 重量級選手進入APM市場

http://t.cn/RfjDrvt

  • APM最佳實踐系列文章專題合輯

http://t.cn/RxZQOto

  • 手機淘寶:億級用戶APP的快速運維交付實踐

http://t.cn/RibFFYO 

責任編輯:龐桂玉 來源: iOS大全
相關推薦

2022-06-09 15:53:16

移動端渲染GPU

2016-03-21 10:05:18

2022-12-29 08:56:30

監控服務平臺

2022-09-05 22:22:00

Stream操作對象

2015-08-10 14:41:39

Kubernetes監控開源容器管理

2024-07-17 09:03:56

2022-07-27 17:40:47

技術人臉識別移動

2021-05-09 23:01:41

Dubbo原理消費端

2016-01-05 09:45:57

設計版式

2011-12-08 11:01:45

HTML 5

2016-12-19 14:35:32

Spark Strea原理剖析數據

2016-01-08 11:35:01

移動端設計版面

2017-09-08 16:45:14

移動

2016-07-28 23:19:10

云計算SOA

2019-07-02 13:48:15

360監控app

2010-02-23 16:07:39

2016-10-25 13:34:53

2020-08-13 15:36:14

移動端跨平臺小程序

2010-07-29 17:26:54

Flex富客戶端技術

2021-07-10 08:29:13

Docker內核Namespace
點贊
收藏

51CTO技術棧公眾號

丰满少妇被猛烈进入一区二区| 尤物国产在线观看| 香蕉久久国产av一区二区| 性久久久久久| 在线日韩欧美视频| 人妻体体内射精一区二区| av在线中出| 欧美国产丝袜视频| 成人自拍爱视频| 黄色在线免费观看| 一区二区三区在线| 亚洲男人天堂2019| 国产成人美女视频| 色在线视频观看| 亚洲欧洲制服丝袜| 免费在线国产精品| 亚洲国产剧情在线观看| 日本视频在线一区| 久久久免费精品| 久久一级免费视频| 九九热线有精品视频99| 日韩一区二区不卡| 少妇网站在线观看| 性欧美freesex顶级少妇| 亚洲欧美日韩系列| 色姑娘综合网| 三级视频在线| 国产91丝袜在线18| 91久热免费在线视频| 欧美日韩一级黄色片| 欧美日一区二区三区在线观看国产免| 中文欧美在线视频| 黄色aaa视频| 国产成人一二片| 91精品国产综合久久福利| 欧在线一二三四区| 日本乱码一区二区三区不卡| 亚洲一卡二卡三卡四卡| 黑人巨大国产9丨视频| 欧美日韩视频精品二区| 成人高清视频在线| 国产女人18毛片水真多成人如厕| 亚洲精品久久久久久久久| 五月天激情播播| 无码小电影在线观看网站免费| 亚洲精品中文字幕在线观看| 亚洲电影网站| 3344国产永久在线观看视频| 一区二区高清| 久久久久久久久久久久av| 日本午夜在线观看| 99tv成人| 神马久久桃色视频| 久久久久久久久福利| 看黄色一级大片| 91精品啪在线观看国产18| 亚洲夜晚福利在线观看| 中文字幕在线观看的网站| 欧美大胆a级| 亚洲精品国产精品乱码不99按摩 | 亚洲午夜一级| 九九热精品视频国产| 青娱乐国产精品| 午夜精品av| 欧美黑人巨大xxx极品| 久久97人妻无码一区二区三区| 欧美日本一区二区视频在线观看 | 爱草tv视频在线观看992| 亚洲成人综合视频| 人妻熟妇乱又伦精品视频| 欧美激情网站| 欧美最新大片在线看| 成人日韩在线视频| 欧洲精品99毛片免费高清观看| 欧美xxxxxxxx| www.免费av| 蜜臀av免费一区二区三区| 国产亚洲精品日韩| 成人自拍小视频| 亚洲男人电影天堂| 国产91精品久久久久| 日韩精品久久久久久久酒店| 一区二区久久| 国产精品久久久久av| 一区二区三区黄| 国产一区高清在线| 精品欧美一区二区精品久久| 日韩在线视频不卡| 久草免费在线视频| 欧美日韩一区二区精品| 精品国产成人av在线免| 韩国三级一区| 91精品蜜臀在线一区尤物| 在线观看欧美一区二区| 91黑人精品一区二区三区| 黄色在线一区| 日本高清+成人网在线观看| 中文字幕二区三区| 国产精品538一区二区在线| 国产欧美一区二区三区另类精品 | 精品国产91乱码一区二区三区| 制服丝袜第二页| 日韩理论电影大全| 久久久久九九九九| 久久精品视频2| 国产精品99久久久久久似苏梦涵| 久久99精品久久久久久三级| 求av网址在线观看| 精品人伦一区二区三区蜜桃免费| 日韩一区二区三区久久| 另类春色校园亚洲| 精品国偷自产在线视频| 你懂的国产在线| 国产成人精品久久二区二区91| 天堂免费在线视频| 成人综合婷婷国产精品久久蜜臀| 日本一区二区视频| 国产盗摄精品一区二区酒店| 欧美视频一区二区三区四区| 五月天丁香社区| 久久高清免费| 日韩欧美在线视频播放| 国产精品一区二区三区四区在线观看 | 天堂av一区二区| 波多野结衣久久| 3751色影院一区二区三区| 在线观看福利片| 99pao成人国产永久免费视频| 亚洲成年人影院| 久久国产亚洲精品无码| 日本一区二区乱| 久久精品中文字幕免费mv| 久久久精品毛片| 99亚偷拍自图区亚洲| 加勒比海盗1在线观看免费国语版| 制服诱惑亚洲| 精品亚洲一区二区| 羞羞影院体验区| 成人免费视频播放| 青青草视频在线视频| 欧美一级做a| 国产一区二区三区久久精品| 51国产偷自视频区视频| 99久久综合色| a级黄色小视频| 国产成人高清精品免费5388| 欧美激情精品久久久久久蜜臀| 国产99久久九九精品无码免费| 成人免费在线视频观看| 一区二区三区欧美精品| 日韩成人三级| 成人免费视频网址| 黄色网址在线免费观看| 3d动漫精品啪啪| 亚洲色婷婷一区二区三区| 国模一区二区三区白浆| 在线观看三级网站| **爰片久久毛片| 久久久噜噜噜久久| 色噜噜在线播放| 黑人精品xxx一区| 国产精品1000部啪视频| 久久青草久久| 亚洲电影免费| 秋霞影院一区| 性欧美视频videos6一9| 在线播放一区二区三区| 国产性猛交xx乱| 免费成人在线视频观看| 伊人久久大香线蕉精品 | 国产欧美韩国高清| 岛国中文字幕在线| 精品国产一区久久| 国产精品黄色大片| 97久久天天综合色天天综合色hd| 亚洲一级视频在线观看| 国产精品福利一区| 五月六月丁香婷婷| 亚洲国产日本| 日本三级中国三级99人妇网站| jizz久久久久久| 免费av一区二区| 五月婷婷丁香花| 欧美在线free| 99porn视频在线| 蜜桃视频在线观看播放| 色噜噜久久综合伊人一本| 成人福利小视频| 色婷婷久久久亚洲一区二区三区| 日日碰狠狠添天天爽| 成人午夜激情在线| 蜜桃免费在线视频| 狠狠爱www人成狠狠爱综合网| 欧美精品成人一区二区在线观看| 欧美一区=区三区| 午夜精品久久久久久久白皮肤| 电影在线一区| 欧美va在线播放| 日韩黄色一级视频| 亚洲一区二区在线播放相泽| 欧美福利第一页| 成人免费的视频| 青青草原国产在线视频| 亚洲视频大全| 国产制服91一区二区三区制服| 欧美美女在线| 国产精品一区二区欧美| 伊人久久精品| 欧美有码在线观看| 美女航空一级毛片在线播放| 在线观看亚洲区| 在线观看xxx| 欧美不卡在线视频| 亚洲无码精品在线观看| 福利视频导航一区| 国产亚洲成人精品| 亚洲欧美视频在线观看| 日韩黄色中文字幕| 国产亚洲欧美日韩在线一区| 韩国三级视频在线观看| 九九九久久久精品| 日本激情一区二区三区| 欧美激情在线看| 欧美xxxxx少妇| 精一区二区三区| 日韩欧美在线免费观看视频| 国语自产精品视频在线看8查询8| 中文字幕免费在线不卡| 欧美日韩国产高清电影| 久久伊人一区| 婷婷成人影院| 精品国产第一页| 亚洲超碰在线观看| 亚洲a中文字幕| 24小时成人在线视频| 国产精品稀缺呦系列在线 | 欧美在线视频a| 国产精品一区二区日韩| 欧美激情综合色| 日韩特级毛片| 欧美激情视频在线免费观看 欧美视频免费一| av播放在线| 色综合伊人色综合网| 91亚洲精选| 日韩最新在线视频| 黄色小网站在线观看| 欧美成人黄色小视频| 中文字幕中文字幕在线十八区| 欧美成年人视频| 日本色护士高潮视频在线观看| 成年人精品视频| 污网站在线免费看| 高清一区二区三区四区五区| 丁香花在线观看完整版电影| 国语自产精品视频在免费| 成人爽a毛片免费啪啪动漫| 久久久视频免费观看| 手机在线观看av网站| 欧美最近摘花xxxx摘花| 午夜无码国产理论在线| 国产免费亚洲高清| 日本成人手机在线| 狠狠综合久久av| 黑人操亚洲人| 先锋在线资源一区二区三区| 91综合久久一区二区| 国产精品美女在线播放| 欧美日韩国产探花| 国产黄页在线观看| 日韩av不卡在线观看| 激情在线观看视频| 国产v综合v亚洲欧| 少妇光屁股影院| 国产精品女主播在线观看| 欧美三根一起进三p| 精品国产乱码久久久久酒店| 激情网站在线观看| 日韩视频一区二区在线观看| 婷婷在线免费观看| 中文字幕国内精品| 第四色日韩影片| 国产成人精品电影| 中文字幕一区二区三区四区久久 | 国产精品久久久久天堂| 欧美丰满艳妇bbwbbw| 婷婷久久综合九色综合伊人色| 中文字幕精品无| 日韩亚洲欧美在线| 青青草免费观看免费视频在线| 中文字幕欧美日韩在线| 视频在线这里都是精品| 青青草精品毛片| 精品一区二区三区免费看| 久久久久久久久久久久久9999| 日产精品一区二区| 国自产拍偷拍精品啪啪一区二区| 久久精品中文| 第一页在线视频| 欧美高清在线一区| 国产a∨精品一区二区三区仙踪林| 欧美日韩亚洲另类| 三级理论午夜在线观看| 欧美精品制服第一页| 涩涩视频在线播放| 99理论电影网| 青青草国产免费一区二区下载| 无码 制服 丝袜 国产 另类| 久久99国产精品久久| 日本少妇色视频| 亚洲成人资源网| 国产精品玖玖玖| 永久免费看mv网站入口亚洲| ****av在线网毛片| 91免费在线观看网站| 日韩电影在线视频| 成人午夜视频免费在线观看| 国产不卡视频在线播放| 天海翼在线视频| 欧美午夜电影网| 人成免费电影一二三区在线观看| 欧美日韩成人网| 亚洲电影二区| 亚州欧美一区三区三区在线| 亚洲专区在线| 一级特级黄色片| 亚洲午夜成aⅴ人片| 国产丝袜在线视频| 中文字幕国产精品| 电影亚洲一区| 日韩亚洲一区在线播放| 美女黄网久久| 国产特黄级aaaaa片免| 精品福利在线看| 欧美一级特黄aaaaaa| 欧美国产精品va在线观看| 日韩有吗在线观看| 天堂av免费看| 国产精品一区二区久久精品爱涩 | 天天揉久久久久亚洲精品| 成人性做爰aaa片免费看不忠| 91麻豆国产在线观看| 91porny在线| 国产视频丨精品|在线观看| 国产无遮挡裸体视频在线观看| 国产精品久久久久久免费观看| 国产专区一区| 日韩精品人妻中文字幕有码| 亚洲成人你懂的| 四虎影视精品成人| 久久久久久久影院| 久久香蕉精品香蕉| 免费观看国产精品视频| 97久久超碰国产精品电影| 国产做受高潮漫动| 亚洲欧美另类在线观看| 日本肉肉一区| 最新欧美日韩亚洲| 国产成人精品免费看| 国产精品18p| 亚洲女人天堂网| 成人一级视频| 超碰97在线看| 菠萝蜜视频在线观看一区| 黄色片中文字幕| 色婷婷综合久久久久中文字幕1| 日韩成人综合网| 中文精品无码中文字幕无码专区| 成人av在线电影| 国产一区二区视频免费| 日韩在线精品一区| 日韩在线亚洲| 成人毛片视频网站| 中文字幕一区二区视频| 亚洲国产福利视频| 欧美亚洲日本网站| 久久久久免费av| 日韩无码精品一区二区| 在线观看视频一区| а√天堂在线官网| 久久精品国产精品青草色艺| 日韩成人一级大片| 免费在线观看国产精品| 亚洲精品视频中文字幕| 色噜噜成人av在线| 日本在线xxx| 自拍偷拍国产精品| 五月天婷婷在线观看| 国产在线精品成人一区二区三区| 欧美特黄一级| 免费看日本黄色片| 精品国产免费人成电影在线观看四季 | 亚洲爱爱综合网| 国产成人91久久精品| 亚洲最新色图| 国产成人无码精品久久二区三| 欧美一区二区在线视频| 老司机2019福利精品视频导航| 400部精品国偷自产在线观看| 久久久亚洲午夜电影| 国产高清精品软件丝瓜软件|