埋點目的
對于本次修改的資料統計分析程式的埋點,只是為了統計資料中出現的一些不易發現的錯誤,全部讓程式主動跑出來,但是只要是主動拋出統計資料,都屬于埋點,
資料埋點是資料分析的準備作業,只有埋點了才可以獲得資料進行分析,在做足資料埋點之后,才能拿到想要的目標資料:
- 行為資料:時間、地點、人物、互動、互動的內容;
- 質量資料:瀏覽器加載情況、錯誤例外等;
- 環境資料:瀏覽器相關的元資料以及地理、運營商等;
- 運營資料:PV、UV、轉化率、留存率(很直觀的資料)
整體調整Python專案規范性之后加入錯誤資料埋點就屬于質量資料部分,
埋點方案
埋點分為前端埋點和后端埋點,常見的埋點方案有
- 前端代碼埋點:直接在前端嵌入代碼收集目標資料
- 前端無埋點:常見的前端埋點技術,全部采集,按需選取
- 后端代碼埋點:直接在后端嵌入代碼收集目標資料
此次主要針對不使用第三方資料分析平臺的專案進行的后端代碼埋點(適用于資料統計分析監控程式這種場景)
后端埋點的設計必然要考慮以下幾點:
- 高靈活:可以隨時隨地手工埋點
- 小影響:對源代碼侵入少
- 已更新:埋點內容變化時,只需要修改埋點介面,而不能去代碼中一處一處的修改
在一些公共庫或者封裝的自定義框架里面不進行埋點,所有的埋點都在業務層,比如資料庫連接池出現連接數溢位的時候錯誤需要經過處理,然后按照自定義的統一風格拋出相關資訊到業務層,便于業務層判斷公共庫和自定義框架執行時是否有錯誤,
后端埋點具體實施方案
直接在后端指定位置處寫入埋點代碼收集資料,每個方法中在共享共有資訊這一塊有一些不同,
- 每個需要用到發送訊息的檔案中都import一份配置資訊,然后在需要的地方,根據配置資訊手動埋點,
- 將訊息發送封裝成一個MixIn類,使用繼承混入到各個類中,每次都需要經過建立連接發送訊息斷開連接,
- 將埋點資訊封裝成一個模塊,提供全域的初始化函式和埋點訊息生成函式,在程式入口處呼叫初始化模塊的初始化函式進行初始化,然后在程式的任何地方都可以訊息生成函式,此種方法類似于使用第三方資料分析平臺提供sdk時的使用方法,
方案選取:
- 由于專案是python撰寫的,埋點資料發送到kafka,封裝好的第三方python模塊可以采集自己需要一切資訊,因此采用最后一種方式,寫成可插拔的第三方sdk的形式,可以直接封裝一些新增的方法,包含一些可以用的資訊,例如自動采集報錯資訊所在行數,
- 對于非python專案,提供python腳本供其他語言程式進行呼叫,例如Erlang撰寫的轉推流服務中呼叫Python腳本拋出報錯資訊及其他資料,
參考:
- 神策資料:埋點套路深,千萬別掉“坑”
- 資料分析產品的下一個進化:基于無埋點的有埋點
- 美團點評前端無痕埋點實踐
記得幫我點贊哦!
精心整理了計算機各個方向的從入門、進階、實戰的視頻課程和電子書,按照目錄合理分類,總能找到你需要的學習資料,還在等什么?快去關注下載吧!!!

念念不忘,必有回響,小伙伴們幫我點個贊吧,非常感謝,
我是職場亮哥,YY高級軟體工程師、四年作業經驗,拒絕咸魚爭當龍頭的斜杠程式員,
聽我說,進步多,程式人生一把梭
如果有幸能幫到你,請幫我點個【贊】,給個關注,如果能順帶評論給個鼓勵,將不勝感激,
職場亮哥文章串列:更多文章

本人所有文章、回答都與著作權保護平臺有合作,著作權歸職場亮哥所有,未經授權,轉載必究!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/232883.html
標籤:Python
