一.前言
[APM 終端用戶體驗(yàn)監(jiān)控分析(上)][1]從 APM 終端用戶產(chǎn)品特性蜡坊、使用建議逼友、以及從[真實(shí)用戶體驗(yàn)][2]和[模擬性能監(jiān)控][3]兩方面入手給大家進(jìn)行了簡單的分享酝掩。
本文為下篇灰瞻,將給大家介紹幾種新的 APM 終端[用戶體驗(yàn)][4]監(jiān)控的方式猿诸。
二.基于網(wǎng)絡(luò)的數(shù)據(jù)包捕獲
基于網(wǎng)絡(luò)的數(shù)據(jù)包捕獲工具對執(zhí)行應(yīng)用無任何影響饼暑,且不要求改變代理或軟件稳析,因此無需進(jìn)行大量的[應(yīng)用測試][5]就可得出所需值。須在網(wǎng)絡(luò)適當(dāng)位置設(shè)計(jì)流量聚合層弓叛,且須使用矩陣或?qū)I(yè)網(wǎng)絡(luò)設(shè)備以對正在被發(fā)送到監(jiān)控系統(tǒng)的流量進(jìn)行更多粒狀過濾彰居。流量聚合網(wǎng)絡(luò)不僅可用于 APM 使用情況,還可用于[安全][6]監(jiān)控產(chǎn)品和網(wǎng)絡(luò)性能監(jiān)控工具撰筷,例如陈惰,[OneAPM CloudTest][7]、[NewRelic][8]毕籽、[APPdynamic][9] 等廠商都是比較有代表性的網(wǎng)絡(luò)性能監(jiān)控工具的提供商抬闯。
這些基于網(wǎng)絡(luò)的數(shù)據(jù)包捕獲產(chǎn)品可測量響應(yīng)時(shí)間、詳細(xì)內(nèi)容关筒、網(wǎng)絡(luò)產(chǎn)生的錯(cuò)誤代碼(如重傳溶握、DNS 解析問題、亂序數(shù)據(jù)包和 Nagle 延誤)蒸播、瀏覽器產(chǎn)生的錯(cuò)誤代碼(如請求中斷)以及應(yīng)用產(chǎn)生的錯(cuò)誤代碼(如HTTP錯(cuò)誤代碼或者其他自定義錯(cuò)誤信息)睡榆,有些產(chǎn)品還能重建和回放用戶實(shí)際看到的內(nèi)容,如下兩圖所示:
從基礎(chǔ)設(shè)施和應(yīng)用這兩個(gè)角度來看袍榆,這些工具對于應(yīng)用支持團(tuán)隊(duì)來說都極具價(jià)值肉微。他們還可幫助業(yè)務(wù)分析師了解使用情況和應(yīng)用交付的質(zhì)量,例如可以通過 API 監(jiān)控來了解第三方交付的軟件的質(zhì)量問題。
第4張雖然數(shù)據(jù)包捕獲技術(shù)確實(shí)增加了監(jiān)控軟件所捕獲限制數(shù)據(jù)的安全風(fēng)險(xiǎn)蜡塌,但這些技術(shù)還是得到了互助網(wǎng)體系和其他基礎(chǔ)設(shè)施管理團(tuán)隊(duì)的充分理解和高度認(rèn)可,部分流量聚合交換機(jī)允許屏蔽敏感數(shù)據(jù)。
隨著應(yīng)用復(fù)雜性的增強(qiáng)勿负,通常需要結(jié)合公共或個(gè)人 Web 服務(wù)使用來自瀏覽器中的外部服務(wù)馏艾,并結(jié)合使用內(nèi)容高速存取和內(nèi)容分發(fā)網(wǎng)絡(luò),這就導(dǎo)致基于網(wǎng)絡(luò)的方法缺乏可見性奴愉。一些提供基于網(wǎng)絡(luò)的數(shù)據(jù)包捕獲的供應(yīng)商通過允許在服務(wù)器端設(shè)備上進(jìn)行數(shù)據(jù)包捕獲和分析來應(yīng)對這一挑戰(zhàn)琅摩,因此在一些基于云的基礎(chǔ)設(shè)施上進(jìn)行部署時(shí)就具有可見性,比如基礎(chǔ)設(shè)施即服務(wù)(IaaS)锭硼、軟件即服務(wù)([SaaS][10])房资,但根據(jù)流量情況這可能會引起系統(tǒng)開銷和可用資源超負(fù)荷。
目前國內(nèi)外比較好的供應(yīng)商如 [OneAPM][11]檀头、[Newrelic][12]等轰异,他們可以網(wǎng)站從研發(fā)到上線的不同階段提供相應(yīng)的解決方案岖沛。
三.客戶端變成服務(wù)器
隨著基于網(wǎng)絡(luò)和其他以網(wǎng)絡(luò)為中心的應(yīng)用程序交付方法特色功能的增多和使用的增加,客戶端承擔(dān)了比之前更多的處理負(fù)擔(dān)搭独,這就需要對這些端點(diǎn)進(jìn)行監(jiān)控婴削。有些方法包括一個(gè)基于代理的方法,一個(gè)嵌入式代理或者一個(gè)注入式代理牙肝。一些供應(yīng)商針對這些不同的方法有相應(yīng)的解決方案唉俗,不過最常采用的是注射法,即自動在網(wǎng)頁中插入 代碼配椭,這樣可監(jiān)控瀏覽器運(yùn)行時(shí)的時(shí)間選擇和執(zhí)行情況虫溜。這些技術(shù)為基于網(wǎng)絡(luò)的應(yīng)用增添了可見性性能,且?guī)椭覀兞私獾饺找鎻?fù)雜的客戶端代碼執(zhí)行(包括 股缸、 HTML5 和 APP)衡楞。
人工實(shí)施這些 監(jiān)控技術(shù)通常會使得對已改變的軟件的測試過程變得復(fù)雜,并會增加質(zhì)量保證的測試周期乓序。APM 供應(yīng)商也在不斷提高代理的能力來監(jiān)控應(yīng)用服務(wù)器寺酪,在處理頁面時(shí)插入這種代碼,從而減輕開發(fā)和測試團(tuán)隊(duì)的負(fù)擔(dān)替劈。隨著瀏覽器成為未來常用的應(yīng)用交付平臺寄雀,這些技術(shù)也日趨變得重要。
國內(nèi)的產(chǎn)品現(xiàn)在為止也就 [Browser Insight][13] 這款產(chǎn)品比較靠譜陨献,別的廠家的的類似工具總是感覺維度不是那么豐富盒犹。
四.瀏覽器標(biāo)準(zhǔn)的形成
隨著當(dāng)前瀏覽器大量使用手動計(jì)時(shí)方法,這就促使瀏覽器供應(yīng)商建立一個(gè)定時(shí)應(yīng)用程序編程接口(API)向軟件開發(fā)人員開放使用眨业。為此已形成多種標(biāo)準(zhǔn):
■ [Navigation Timing][14]——該標(biāo)準(zhǔn)已廣為微軟的 Internet Explorer 9及以上版本急膀、Mozilla Firefox 7 及以上版本、Google Chrome 6及以上版本以及微軟的 Windows Phone瀏覽器接受龄捡,卓嫂,上文說過的 [Browser Insight][15] 采用的就是這一標(biāo)準(zhǔn)。
■ [Boomerang][16]——該自由釋放的 庫采用了多種計(jì)時(shí)方法聘殖,若瀏覽器支持的話它還將采用導(dǎo)航計(jì)時(shí)規(guī)范晨雳。
■ 另外,谷歌已悄悄發(fā)布了一份谷歌 Chrome 瀏覽器支持的新協(xié)議奸腺。該協(xié)議屬于 HTTP 的高性能版本 [SPDY][17]餐禁,目前谷歌服務(wù)以及其他互聯(lián)網(wǎng)網(wǎng)站和 CDN 供應(yīng)商均支持該協(xié)議。希望更多的采用這些標(biāo)準(zhǔn)以幫助我們更好的依賴 HTTP突照,因?yàn)閼?yīng)用交付的核心互聯(lián)網(wǎng)協(xié)議在某些情況下是存在問題的帮非。
尋找能增加瀏覽器的可見性性能的解決方案,反過來那些自己記錄性能日志的開發(fā)人員和那些提供更多詳細(xì)性能指標(biāo)的 APM 供應(yīng)商也可采用這些方案。
五.結(jié)語
第三方服務(wù)供應(yīng)商不允許使用基于代理或基于網(wǎng)絡(luò)的工具末盔,這使得這些技術(shù)顯得不足筑舅。不過謝天謝地,根據(jù)這些應(yīng)用組件聚合從瀏覽器角度改善可見性這點(diǎn)是可行的庄岖。隨著終端用戶體驗(yàn)監(jiān)控市場的變化豁翎,將會出現(xiàn)新的方法,能用來看到終端用戶留在桌面瀏覽器上以及通過 Wi-Fi 或數(shù)據(jù)連接的平板電腦和移動系統(tǒng)上的活動和體驗(yàn)隅忿。對于網(wǎng)絡(luò)和服務(wù)器工具心剥,通過IT操作分析方法將有可能增強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)包捕獲能力和分析能力。
以上方法將幫助我們撥開迷霧背桐,讓被烏云籠罩的可見性重見天日优烧。
[Cloud Test][18] 是基于云技術(shù)的實(shí)時(shí)監(jiān)控系統(tǒng),能夠幫大家實(shí)時(shí)監(jiān)控網(wǎng)站性能链峭,監(jiān)控 CDN畦娄、DNS、API 弊仪、事務(wù)監(jiān)控等第三方服務(wù)提供商的可用性熙卡,實(shí)現(xiàn)應(yīng)用性能及時(shí)監(jiān)測及時(shí)報(bào)警。想閱讀更多技術(shù)文章励饵,請?jiān)L問[OneAPM 官方技術(shù)博客][19]驳癌。
本文轉(zhuǎn)自 OneAPM 官方博客
[1]: http://blog.oneapm.com/apm-tech/661.html?utm_source=Community&utm_medium=Article&utm_term=APM%E7%BB%88%E7%AB%AF%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C%E7%9B%91%E6%8E%A7%E5%88%86%E6%9E%90%EF%BC%88%E4%B8%8B%EF%BC%89&utm_content=wk502-508&utm_campaign=CtArti&from=jsoymkqa
[2]: http://blog.oneapm.com/tags-%E7%9C%9F%E5%AE%9E%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C.html
[3]: http://blog.oneapm.com/tags-%E6%A8%A1%E6%8B%9F%E6%80%A7%E8%83%BD%E7%9B%91%E6%8E%A7.html
[4]: http://blog.oneapm.com/tags-%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C.html
[5]: http://www.oneapm.com/ai/cpm.html
[6]: http://blog.oneapm.com/tags-%E5%AE%89%E5%85%A8.html
[7]: http://ct.oneapm.com/landing-page/page/?utm_source=Community&utm_medium=Article&utm_term=APM%E7%BB%88%E7%AB%AF%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C%E7%9B%91%E6%8E%A7%E5%88%86%E6%9E%90%EF%BC%88%E4%B8%8B%EF%BC%89&utm_content=wk502-508&utm_campaign=CtArti&from=jsoymkqa
[8]: http://newrelic.com/
[9]: http://www.appdynamics.cn/index.html
[10]: http://blog.oneapm.com/tags-SaaS.html
[11]: http://www.oneapm.com/ct/feature.html?utm_source=Community&utm_medium=Article&utm_term=APM%E7%BB%88%E7%AB%AF%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C%E7%9B%91%E6%8E%A7%E5%88%86%E6%9E%90%EF%BC%88%E4%B8%8B%EF%BC%89&utm_content=wk502-508&utm_campaign=CtArti&from=jsoymkqa
[12]: https://newrelic.com/
[13]: http://www.oneapm.com/bi/feature.html?utm_source=Community&utm_medium=Article&utm_term=APM%E7%BB%88%E7%AB%AF%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C%E7%9B%91%E6%8E%A7%E5%88%86%E6%9E%90%EF%BC%88%E4%B8%8B%EF%BC%89&utm_content=wk502-508&utm_campaign=CtArti&from=jsoymkqa
[14]: http://w3c.github.io/navigation-timing/
[15]: http://www.oneapm.com/bi/feature.html
[16]: http://yahoo.github.io/boomerang/doc/
[17]: http://www.chromium.org/spdy
[18]: http://www.oneapm.com/ct/feature.html?utm_source=Community&utm_medium=Article&utm_term=APM%E7%BB%88%E7%AB%AF%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C%E7%9B%91%E6%8E%A7%E5%88%86%E6%9E%90%EF%BC%88%E4%B8%8B%EF%BC%89&utm_content=wk502-508&utm_campaign=CtArti&from=jsoymkqa
[19]: http://blog.oneapm.com/?utm_source=Community&utm_medium=Article&utm_term=APM%E7%BB%88%E7%AB%AF%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C%E7%9B%91%E6%8E%A7%E5%88%86%E6%9E%90%EF%BC%88%E4%B8%8B%EF%BC%89&utm_content=wk502-508&utm_campaign=CtArti&from=jsoymkqa