不可缺少的程式埋點
埋點目的
對於本次修改的資料統計分析程式的埋點,只是為了統計資料中出現的一些不易發現的錯誤,全部讓程式主動跑出來。但是隻要是主動丟擲統計資料,都屬於埋點。
資料埋點是資料分析的準備工作,只有埋點了才可以獲得資料進行分析。在做足資料埋點之後,才能拿到想要的目標資料:
- 行為資料:時間、地點、人物、互動、互動的內容;
- 質量資料:瀏覽器載入情況、錯誤異常等;
- 環境資料:瀏覽器相關的後設資料以及地理、運營商等;
- 運營資料:PV、UV、轉化率、留存率(很直觀的資料)
整體調整Python專案規範性之後加入錯誤資料埋點就屬於質量資料部分。
埋點方案
埋點分為前端埋點和後端埋點,常見的埋點方案有
- 前端程式碼埋點:直接在前端嵌入程式碼收集目標資料
- 前端無埋點:常見的前端埋點技術。全部採集,按需選取
- 後端程式碼埋點:直接在後端嵌入程式碼收集目標資料
此次主要針對不使用第三方資料分析平臺的專案進行的後端程式碼埋點(適用於資料統計分析監控程式這種場景)
後端埋點的設計必然要考慮以下幾點:
- 高靈活:可以隨時隨地手工埋點
- 小影響:對原始碼侵入少
- 已更新:埋點內容變化時,只需要修改埋點介面,而不能去程式碼中一處一處的修改
在一些公共庫或者封裝的自定義框架裡面不進行埋點,所有的埋點都在業務層。比如資料庫連線池出現連線數溢位的時候錯誤需要經過處理,然後按照自定義的統一風格丟擲相關資訊到業務層,便於業務層判斷公共庫和自定義框架執行時是否有錯誤。
後端埋點具體實施方案
直接在後端指定位置處寫入埋點程式碼收集資料。每個方法中在共享共有資訊這一塊有一些不同。
- 每個需要用到傳送訊息的檔案中都import一份配置資訊,然後在需要的地方,根據配置資訊手動埋點。
- 將訊息傳送封裝成一個MixIn類,使用繼承混入到各個類中。每次都需要經過建立連線傳送訊息斷開連線。
- 將埋點資訊封裝成一個模組,提供全域性的初始化函式和埋點訊息生成函式,在程式入口處呼叫初始化模組的初始化函式進行初始化,然後在程式的任何地方都可以訊息生成函式。此種方法類似於使用第三方資料分析平臺提供sdk時的使用方法。
方案選取:
- 由於專案是python編寫的,埋點資料傳送到kafka,封裝好的第三方python模組可以採集自己需要一切資訊。因此採用最後一種方式,寫成可插拔的第三方sdk的形式,可以直接封裝一些新增的方法,包含一些可以用的資訊,例如自動採集報錯資訊所在行數。
- 對於非python專案,提供python指令碼供其他語言程式進行呼叫。例如Erlang編寫的轉推流服務中呼叫Python指令碼丟擲報錯資訊及其他資料。
記得幫我點贊哦!
念念不忘,必有迴響,小夥伴們幫我點個贊吧,非常感謝。
> 我是職場亮哥,YY高階軟體工程師、四年工作經驗,拒絕鹹魚爭當龍頭的斜槓程式設計師。
>
> 聽我說,進步多,程式人生一把梭
>
> 如果有幸能幫到你,請幫我點個【贊】,給個關注,如果能順帶評論給個鼓勵,將不勝感激。
本人所有文章、回答都與版權保護平臺有合作,著作權歸職場亮哥所有,未經授權,轉載必究!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4289/viewspace-2826662/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 小程式從手動埋點到自動埋點
- 工作學習不可缺少的Microsoft Office 2019ROS
- 小程式自動埋點教程
- 埋點
- 埋點表相關
- 智慧小程式檔案館——埋點統計
- Java開發工具不可缺少JetBrains IntelliJ IDEA 2020JavaAIIntelliJIdea
- 【LiteApp系列】埋點的設計APP
- 面向切面程式設計AspectJ在Android埋點的實踐程式設計Android
- 資料埋點測試的那點事
- 前端埋點方案分析前端
- 埋點計算定位
- 做好工作不可缺少的快速實時翻譯工具Translate Tab
- “用資料說話,從埋點開始”-帶你理解前端的三種埋點前端
- 如何實現直播連麥?音視訊SDK不可缺少!
- 元件中路由和埋點元件路由
- js無侵入埋點方案JS
- JetCache埋點的騷操作,不服不行啊
- Top11月程式語言排行榜:C堅不可摧,Python埋頭並進Python
- vue宣告式埋點實踐Vue
- 前端埋點統計方案思考前端
- MTFlexbox自動化埋點探索Flex
- 全自動埋點 diff 工具
- uniapp增加自定義埋點功能APP
- SpringBoot Actuator — 埋點和監控Spring Boot
- Android埋點技術概覽Android
- Android全量埋點實踐Android
- 通用的底層埋點都是怎麼做的?
- 如何做出更好的的影視後期特效?不可缺少Blackmagic Fusion Studio16特效
- 無埋點統計SDK實踐
- Html網頁標籤曝光埋點HTML網頁
- Flutter頁面曝光事件埋點框架Flutter事件框架
- 如何使用Android視覺化埋點Android視覺化
- JJEvent 一個可靠的Android端資料埋點SDKAndroid
- 視覺化埋點在React Native中的實踐視覺化React Native
- 一個輕量級react埋點元件React元件
- SOFATracer 外掛埋點機制詳解
- 輕量級非侵入式埋點方案