前端監控系統博客總結

總結看了很多很多的文章, 瞭解了很多方法, 但選出最適合自己的那個, 是最難的.

沒想明白的點

  • 頁面卡死奔潰的時候, 如何發送異常 -> 心跳包, service worker發送數據
  • 跨域問題: ->
    • 儘可能的Patch信息, 但入侵業務太大了
  • 解決打點GIF中的最大長度問題 ->
    • 分成即時數據上報, 和行爲數據上報.
    • http2/頭部壓縮
    • 壓縮日誌長度
    • 行爲數據較大, 走ajax, (只針對特定站點解決, 跨域問題).
    • 行爲數據較大, 可以使用sendBeacon.
  • 點擊的監聽事件, 在error後面執行, 如何保存起來 -> 後面的數據通過行爲數據上報. 錯誤全部走即時上報
  • 其他script標籤引入的sdk中報錯, 如何捕獲 -> 如果想收集其他sdk的錯誤, 需要標明<script crossorigin>
  • 異常隔離 -> 區分sdk異常和業務異常

前端監控的目的

  • 瞭解線上性能信息, 提升用戶體驗
  • 更快的發現異常, 定位異常, 解決異常

前端監控流程

採集 -> 上傳 -> 分析 -> 展示(報警)

採集

  • 環境信息
    • url: 頁面 - window.location.href
    • ua: 用戶信息 - window.navigator.userAgent
    • token: 前端網頁
    • user: 業務相關用戶
  • 性能信息
    • 網絡層面
    • 頁面展示層面
  • 異常信息
    • 語法錯誤
    • 類型錯誤
    • 範圍錯誤
    • 引用錯誤
    • eval錯誤
    • URL錯誤
    • 資源加載錯誤 (只能在捕獲階段獲取到)
  • 接口信息
    • XMLHttpRequest方法攔截
    • Fetch方法
  • 行爲信息
    • 點擊
    • 路由
    • 滾動
    • 鼠標
    • 鍵盤等
  • 用戶自定義信息

流程

  • ajax
  • new Image()
  • sendBeacon

分析

  • 日誌上報後, 進行清洗, 獲取想要的數據, 落庫.
  • 數據量大的時候, 使用就需要使用Hadoop集羣

展示(報警)

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章