上一篇講述了在客戶環境瞎子摸象找問題的慘痛經驗
之後團隊在記取經驗後實做出又酷又好用的東西:遙測資料(Telemetry Data)
把Telemetry拆開,Tele-是遠端(remote),-metry是測量(measure)
所以利用遠端測量的技術,可以幫助我們收取到什麼資料呢?
我看到對遙測資料最容易懂的定義如下:
Telemetry is the automated communication processes from multiple data sources.
中文可以翻成:遙測是透過自動化流程從多個來源收集資料的方法
所以像是手動遠端登入客戶環境收log不算是收集遙測資料XD
而遙測資料的目的可以用收集資料的種類來看,一般可以簡單分成:
下面就簡單舉幾個例子來說明各個類型:
這個應該是最常見的遙測資料類型,以伺服器的使用來說
維運團隊(Ops)很需要像是CPU, 記憶體, 硬碟空間, 網路的使用量資料
為了就是能夠在一個儀表板上面看到所有伺服器的狀態,以確保產品實時在線
還有可能需要知道產品使用尖峰時期最大量,來準備應對不同流量級別的解決方案
也可以針對效能跟成本做一個最適合的評估跟伺服器配置。
這個類型除了產品功能是否正常的監控之外,還有跟行銷業務相關的資料分析
舉個簡單的例子:運動手錶
當你帶著運動的時候,手錶會記錄你的心率,消耗的卡路里,做的運動種類
使用期間有沒有記錄到什麼錯誤報告,有沒有出問題到需要重開手錶
同時這些資料也能夠被手錶製造商拿來做資料分析,分析使用者的使用情境
哪些功能是使用者很喜歡用的,哪些功能幾乎沒在用,是否符合業務預期?
哪些年齡層的客戶喜歡跑步,一次跑多少公里?每次都跑多久?
藉由很細部的去切分出目前產品使用的客群,來修正未來產品改善的目標等
安全性類型通常是會紀錄像伺服器主機登入狀態,還有紀錄跟伺服器相關任何動作
以確保不會有未經授權的登入者(如駭客或外部人員),進入到伺服器中
一般來說通常內部稽核或是要取得外部機構認證的時候,這點就要做得更確實
包含內部人員的權限管控更要嚴格列舉並記錄,確保任何動作都能夠被記錄且查詢。
上述一大串聽起來就是資料收集與分析,但對開發測試維運團隊有什麼幫助呢?
我覺得遙測資料對QA來說最重要的意義是:「真實記錄當下發生的狀況。」
很多時候客戶報一個問題,又說是偶而發生的效能問題
當下可能也不會收log或是錯誤報告,那就會很容易變成一個羅生門的case
身為QA,最頭痛的就是沒辦法重現客戶的問題,而必須要做遠端視訊來解決
而遙測資料對於「判斷過去特定狀態」有極大好處,因為資料都含日期時間
資料處理過後可以尋找特定時間內的狀態,就能驗證客戶說的是不是對的XD
回憶一下上篇的例子,我在客戶的生產環境中測試我們的debug build的時候
其實沒想過他的環境裡面裝了多個防毒軟體,備份軟體,會計軟體等等
所以容易造成軟體產品運行上會不時有效能問題,因為只有在特定時間才會運行。
如果我們有辦法持續蒐集客戶環境上的系統效能,就有辦法更容易找出蛛絲馬跡
更進一步,如果可以知道客戶環境中是否有安裝已知有相容性問題的軟體時
就能從遙測資料中提前反應出這個環境可能已經有確定的問題。
下篇我們來接續講把遙測資料的應用方法
資料可視化(Data Visualization)與儀表板(Dashboard)