不可缺少的程序埋點

埋點目的

對于本次修改的數(shù)據(jù)統(tǒng)計分析程序的埋點,只是為了統(tǒng)計數(shù)據(jù)中出現(xiàn)的一些不易發(fā)現(xiàn)的錯誤,全部讓程序主動跑出來。但是只要是主動拋出統(tǒng)計數(shù)據(jù),都屬于埋點。

數(shù)據(jù)埋點是數(shù)據(jù)分析的準備工作,只有埋點了才可以獲得數(shù)據(jù)進行分析。在做足數(shù)據(jù)埋點之后,才能拿到想要的目標數(shù)據(jù):

  1. 行為數(shù)據(jù):時間、地點、人物、交互、交互的內(nèi)容;
  2. 質(zhì)量數(shù)據(jù):瀏覽器加載情況、錯誤異常等;
  3. 環(huán)境數(shù)據(jù):瀏覽器相關的元數(shù)據(jù)以及地理、運營商等;
  4. 運營數(shù)據(jù):PV、UV、轉(zhuǎn)化率、留存率(很直觀的數(shù)據(jù))

整體調(diào)整Python項目規(guī)范性之后加入錯誤數(shù)據(jù)埋點就屬于質(zhì)量數(shù)據(jù)部分。

埋點方案

埋點分為前端埋點和后端埋點,常見的埋點方案有

  1. 前端代碼埋點:直接在前端嵌入代碼收集目標數(shù)據(jù)
  2. 前端無埋點:常見的前端埋點技術。全部采集,按需選取
  3. 后端代碼埋點:直接在后端嵌入代碼收集目標數(shù)據(jù)

此次主要針對不使用第三方數(shù)據(jù)分析平臺的項目進行的后端代碼埋點(適用于數(shù)據(jù)統(tǒng)計分析監(jiān)控程序這種場景)

后端埋點的設計必然要考慮以下幾點:

  1. 高靈活:可以隨時隨地手工埋點
  2. 小影響:對源代碼侵入少
  3. 已更新:埋點內(nèi)容變化時,只需要修改埋點接口,而不能去代碼中一處一處的修改

在一些公共庫或者封裝的自定義框架里面不進行埋點,所有的埋點都在業(yè)務層。比如數(shù)據(jù)庫連接池出現(xiàn)連接數(shù)溢出的時候錯誤需要經(jīng)過處理,然后按照自定義的統(tǒng)一風格拋出相關信息到業(yè)務層,便于業(yè)務層判斷公共庫和自定義框架執(zhí)行時是否有錯誤。

后端埋點具體實施方案

直接在后端指定位置處寫入埋點代碼收集數(shù)據(jù)。每個方法中在共享共有信息這一塊有一些不同。

  1. 每個需要用到發(fā)送消息的文件中都import一份配置信息,然后在需要的地方,根據(jù)配置信息手動埋點。
  2. 將消息發(fā)送封裝成一個MixIn類,使用繼承混入到各個類中。每次都需要經(jīng)過建立連接發(fā)送消息斷開連接。
  3. 將埋點信息封裝成一個模塊,提供全局的初始化函數(shù)和埋點消息生成函數(shù),在程序入口處調(diào)用初始化模塊的初始化函數(shù)進行初始化,然后在程序的任何地方都可以消息生成函數(shù)。此種方法類似于使用第三方數(shù)據(jù)分析平臺提供sdk時的使用方法。

方案選?。?/p>

  • 由于項目是python編寫的,埋點數(shù)據(jù)發(fā)送到kafka,封裝好的第三方python模塊可以采集自己需要一切信息。因此采用最后一種方式,寫成可插拔的第三方sdk的形式,可以直接封裝一些新增的方法,包含一些可以用的信息,例如自動采集報錯信息所在行數(shù)。
  • 對于非python項目,提供python腳本供其他語言程序進行調(diào)用。例如Erlang編寫的轉(zhuǎn)推流服務中調(diào)用Python腳本拋出報錯信息及其他數(shù)據(jù)。

參考:


念念不忘,必有回響,小伙伴們幫我點個贊吧,非常感謝。

我是職場亮哥,YY高級軟件工程師、四年工作經(jīng)驗,拒絕咸魚爭當龍頭的斜杠程序員。

聽我說,進步多,程序人生一把梭

如果有幸能幫到你,請幫我點個【贊】,給個關注,如果能順帶評論給個鼓勵,將不勝感激。

職場亮哥文章列表:更多文章

本人所有文章、回答都與版權(quán)保護平臺有合作,著作權(quán)歸職場亮哥所有,未經(jīng)授權(quán),轉(zhuǎn)載必究!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容