汽車之家采集SDK埋點可視化實現之路
原創背景
采集sdk作為之家普遍采用的數據采集上報工具為各個業務線的app收集海量數據提供了有力的支持。通過采用代碼埋點,sdk觸發的形式滿足了各個業務線對埋點數據精確控制、自定義數據和精細化數據分析的業務需求。但是復雜的自定義的數據格式和大量的上報數據量對埋點數據的查看和校對工作提出了很高的要求。
現有的埋點數據查看方法
1、通過抓包工具目前查看上報埋點信息普遍采用電腦安裝抓包工具,手機端設置代理,通過抓取查看上報接口請求數據的方式。
(1)客戶端app因為安全要求普遍對網絡代理進行限制,需要開發人員提供特定的測試app 或者提供關閉限制的方法才能進行抓包操作。
(2)正式環境的上報數據做了壓縮加密處理,抓包后數據可視性差。造成絕大多數的測試工作只能在測試環境用測試app對埋點信息進行查看驗證,不能直接在正式環境查看正式上報數據。
(3)抓包工具對上報的數據格式兼容性差,需要把數據拷貝出來進行格式化后才能查看其中關鍵數據,操作不便。
2、查看上報日志對于正式環境的埋點數據通常只能通過查看平臺導出數據進行驗證。
(1)現有的數據平臺決定了不能查看實時數據,導出數據存在延后。
(2)如果發現問題數據需要再次結合抓包操作對埋點位置和埋點數據進行驗證,需要二次操作。針對于已經發現的數據查看不及時,app環境要求嚴格,數據格式不友好,無法驗證線上數據等問題,我們依托于現有采集sdk和正在開發的采集平臺項目開發了埋點可視化功能。目的是為了能夠實時、便捷地查看埋點上報數據。
實現原理和具體使用方法
基本原理
1.sdk方面采用在原有采集sdk中新建入口,并增加獨立上報路徑的方式。能夠保證開啟上報之后不影響現有采集上報邏輯,確保正式環境數據的穩定性,并將集成工作降到最低。
2.sdk新增埋點數據上報方法,數據采用壓縮加密后傳輸,傳遞到后臺服務進行解壓、解密再次發送到web端,保證數據鏈路的安全。
3.數據的實時顯示是埋點可視化功能的基礎,我們選擇使用websocket建立連接,并且通過動態碼的形式將sdk、服務端和web最終串聯形成完整的數據鏈路。
3.1 web端通過隨機生成動態碼按照已定規則拼接scheme跳轉連接并形成二維碼,同時依靠動態碼和服務端建立socket連接。sdk通過掃碼方式進入控制頁面,從
scheme中獲取動態 碼。通過上報接口將埋點數據和動態碼上報到服務器,服務端解析數據并通過動態碼區分將埋點數據分發給不同的前端頁面,至此形成一個完整的數據傳遞鏈路。
3.2 sdk首次進入動態碼生成規則
3.3 sdk 再次進入流程
4.埋點可視化提供歷史記錄查詢界面 ,可以根據條件篩選查詢歷史數據。根據保存的數據結構和操作特點選用Elasticsearch進行數據存儲保證了對大量數據的篩選性能。
使用方法
1.功能入口請在OA搜索采集平臺進入頁面,點擊服務系統選擇埋點可視化功能。
2.集成方式
對于已經集成采集sdk的app只需要升級至最新版sdk;采集sdk具體集成和使用方式可以參考采集平臺中詳細的文檔資料。
3.為了更加便捷的使用埋點可視化功能我們提供了兩種開啟方式。
3.1 掃碼進入
對于擁有掃碼能力的app 只需要簡單適配
通過掃描二維碼獲取scheme進行跳轉 就能進入到sdk埋點可視化控制頁面,自動獲取動態碼點擊開關就可打開埋點可視化功能。
web端默認進入掃碼登錄頁
3.2對于沒有掃碼能力的app可以直接調用api進入控制頁
web端通過使用輸入APP端顯示的動態碼登錄
4.登錄完成后即可進入數據顯示頁面。頁面頭部顯示了當前連接的設備和正在上報的APP名稱,支持一鍵復制設備ID。頁面主體實時顯示上報數據并且根據常用的數據分類區分了 pv,click,,show,other 四種類型。點擊item即可顯示全部的詳細數據。數據詳情頁面對埋點數據進行了排版,優先顯示重點關注數據并對json數據進行了格式化方便查看和復制。
5.我們還對歷史上報記錄提供了豐富的查詢功能,可以通過時間類型等篩選條件對已經上報的數據進行篩選查詢.
點擊查看詳情就可看到全部數據
?
總結
埋點可視化功能致力于讓查看埋點數據更加簡單便捷。項目已經發布,我們還在不斷進行豐富和完善。后期規劃的單類型專注模式、數據實時篩選、查詢數據導出功能、數據拷貝對比等功能已經正在開發當中。