為什么前端不能沒有監(jiān)控系統(tǒng)?
作者:楊成功
簡介:專注前端工程與架構(gòu)產(chǎn)出
來源:SegmentFault 思否社區(qū)
大家好,我是楊成功。
提到監(jiān)控系統(tǒng),大部分同學(xué)首先想到的是后端監(jiān)控。很明顯,比如檢測服務(wù)器性能,數(shù)據(jù)庫性能,API 的訪問流量,以及各種服務(wù)的運(yùn)行情況等等,都與后端息息相關(guān)。而前端更多承擔(dān)的是 UI 展現(xiàn)的角色,主要關(guān)注頁面怎么排版設(shè)計(jì),好像沒什么需要監(jiān)測的地方,因此一直以來都沒有涉及到監(jiān)控的概念。
于是呢大家就一致認(rèn)為:只要后端穩(wěn)定可控,應(yīng)用就是穩(wěn)定可控的,可實(shí)際情況真的是這樣嗎?
近年來,前端發(fā)展日益迅猛,得益于 JavaScript 的持續(xù)進(jìn)化和瀏覽器功能的不斷增強(qiáng),前端能做到的事情越來越多,相應(yīng)的前端應(yīng)用的復(fù)雜度也越來越高。以前我們壓根不會遇到的問題,現(xiàn)在蹭蹭蹭的一股腦都冒出來了。
舉個(gè)例子,小明是個(gè)前端程序員,有一天用戶反饋某頁面某按鈕點(diǎn)了沒有反應(yīng)。小明立刻找到那個(gè)按鈕,輕輕一點(diǎn),咦?正常的呀。然后小明又用了幾個(gè)不同的賬號測試,依然是正常的。這下可把小明難倒了。
怎么辦?我相信全天下的前端程序員們遇到奇怪問題的反應(yīng)是一樣的。小明這樣告訴用戶:可能是瀏覽器緩存問題,不行強(qiáng)制刷新一下,或者退出登錄試試? 用戶按照小明的建議操作一番,果然奏效!于是給小明發(fā)來了一連串的“感謝 ??”。小明尷尬一笑,連忙回復(fù)“小意思”。
過了兩天,又有一個(gè)用戶反饋了同樣的問題。小明又祭出了上面的萬能解決大法,依然奏效。可是問題真的解決了嗎?沒有啊!然而小明嘗試過很多遍都無法復(fù)現(xiàn)異常,可能原因有很多,比如:
數(shù)據(jù)問題,可能取不到某個(gè)屬性
前端問題,JS 代碼執(zhí)行異常
接口問題,可能接口無響應(yīng),或沒有返回預(yù)期的值
前端監(jiān)控具體能解決什么問題?
異常報(bào)錯(cuò)問題
性能檢測問題
運(yùn)營反饋工具
為什么要選擇自研?
sentry
webfunny
fundebug
自研前端監(jiān)控的技術(shù)棧
某個(gè)時(shí)間段用戶的訪問次數(shù)和訪問時(shí)長排行
某個(gè)時(shí)間段頁面的訪問頻率和停留時(shí)間排行
某個(gè)時(shí)間段接口報(bào)錯(cuò)的次數(shù)以及占比統(tǒng)計(jì)



