【Web技術】705- 完善的前端異常監(jiān)控解決方案


1 前端異常
1.1 前端異常分類

1.2 異常錯誤原因分類
2)??? 事件綁定順序錯誤 3)??? 調用棧時序錯誤 4)??? 錯誤的操作js對象 | ||
2)??? 將undefined視作數組進行遍歷 3)??? 將字符串形式的數字直接用于加運算 4)??? 函數參數未傳 | ||
2)??? 服務端未返回數據但仍200,前端按正常進行數據遍歷 3)??? 提交數據時網絡中斷 4)??? 服務端500錯誤時前端未做任何錯誤處理 | ||
2)??? 磁盤塞滿 3)??? 殼不支持API 4)??? 不兼容 |
2 異常采集
2.1 采集內容
2.2 異常捕獲
window.addEventListener(‘error’) / window.addEventListener(“unhandledrejection”) / document.addEventListener(‘click’) 等 框架級別的全局監(jiān)聽,例如aixos中使用interceptor進行攔截,vue、react都有自己的錯誤采集接口 通過對全局函數進行封裝包裹,實現在在調用該函數時自動捕獲異常 對實例方法重寫(Patch),在原有功能基礎上包裹一層,例如對console.error進行重寫,在使用方法不變的情況下也可以異常捕獲
try…catch 專門寫一個函數來收集異常信息,在異常發(fā)生時,調用該函數 專門寫一個函數來包裹其他函數,得到一個新函數,該新函數運行結果和原函數一模一樣,只是在發(fā)生異常時可以捕獲異常
2.3 跨域腳本異常
將js內聯(lián)到HTML中 將js文件與HTML放在同域下
為頁面上script標簽添加crossorigin屬性 被引入腳本所在服務端響應頭中,增加 Access-Control-Allow-Origin 來支持跨域資源共享
2.4 異常錄制


2.5 異常級別

3 整理與上報方案
3.1 前端存儲日志

3.2 前端整理日志
將所有日志記錄按時序存放在歸檔區(qū),并將新入庫的日志加入索引 BatchIndexes:批量上報索引(包含性能等其他日志),可一次批量上報100條 MomentIndexes:即時上報索引,一次全部上報 FeedbackIndexes:用戶反饋索引,一次上報一條 BlockIndexes:區(qū)塊上報索引,按異常/錯誤(traceId,requestId)分塊,一次上報一塊 上報完成后,被上報過的日志對應的索引刪除 3天以上日志進入回收區(qū) 7天以上的日志從回收區(qū)清除

3.3 上報日志
a. 即時上報
b. 批量上報
c. 區(qū)塊上報
d. 用戶主動提交

3.4 壓縮上報數據
4 日志接收與存儲
4.1 接入層與消息隊列

4.2 日志存儲系統(tǒng)
4.3 搜索
5 日志統(tǒng)計與分析
5.1 用戶緯度
5.2 時間維度
5.3 性能維度
5.4 運行環(huán)境維度
5.5?細粒度代碼追蹤
5.6 場景回溯
6 監(jiān)控與通知
6.1 自定義觸發(fā)條件的告警
日志內含有什么內容時 日志統(tǒng)計達到什么度、量時 向符合什么條件的用戶告警
6.2 推送渠道
6.3 推送頻率
6.4 自動報表
6.5 自動產生bug工單
7 修復異常
7.1 sourcemap
7.2 從告警到預警
7.3 智能修復
8 異常測試
8.1 主動異常測試
8.2 隨機異常測試
9 部署
9.1 多客戶端
9.2 集成便捷性
9.3 管理系統(tǒng)的可擴展
9.4 日志系統(tǒng)權限
10 其他
10.1 性能監(jiān)控
運行時性能:文件級、模塊級、函數級、算法級 網絡請求速率 系統(tǒng)性能
10.2 API Monitor
穩(wěn)定性監(jiān)控 數據格式和類型 報錯監(jiān)控 數據準確性監(jiān)控
10.3 數據脫敏
獨立部署,不和其他應用共享監(jiān)控系統(tǒng) 不采集具體數據,只采集用戶操作數據,在重現時,通過日志信息可以取出數據api結果來展示 日志加密,做到軟硬件層面的加密防護 必要時,可采集具體數據的ID用于調試,場景重現時,用mock數據替代,mock數據可由后端采用假的數據源生成 對敏感數據進行混淆
結語
1. JavaScript 重溫系列(22篇全) 2. ECMAScript 重溫系列(10篇全) 3. JavaScript設計模式 重溫系列(9篇全) 4.?正則 / 框架 / 算法等 重溫系列(16篇全) 5.?Webpack4 入門(上)||?Webpack4 入門(下) 6.?MobX 入門(上)?||??MobX 入門(下) 7.?70+篇原創(chuàng)系列匯總 回復“加群”與大佬們一起交流學習~
點擊“閱讀原文”查看70+篇原創(chuàng)文章
點這,與大家一起分享本文吧~
評論
圖片
表情


