簡易趨勢性分析報表-使用平均數與標準差
我現職主要是負責 Data Pipeline 與部分機器學習相關的工作,在監控整體服務營運成效時,一直有個疑問是「單從純量的圖形來看時,我實在看不出每天有什麼不一樣」以及「當不同事件相差數十倍時,我沒辦法在同一張表看出兩者各自的變化,更無法看出彼此間是否有什麼關聯」。
想了許久以後我那連入門都算不上的統計知識突然派上用場了,使用了最簡單的平均數與標準差。
這是什麼
我設計這圖表時,根據觀察會發現「每天半夜四點是使用者最少」、「中午與睡前是使用者最多」,因此做了基礎假設「使用者在每天的同一個時間會有類似的行為」。
在這個假設下,圖表呈現的結果是「這一個小時與過去 N 天中的同一小時的平均數相比,相差多少個標準差」。
導播請下字卡
上圖中 X 軸為時間,Y 軸是與當小時平均數正負多少標準差,而黃色跟綠色是兩個高相關性但數量差距很大的事件,以此圖就能看出各別事件的走勢如何。
這兩個事件理論上走勢要十分相近,但是中間明顯綠色線高出了黃色線許多,因此我們就可以去檢視是否有什麼突發事件或是狀況,而且也能對比這事件與過去 N 天的趨勢走向為何。
結論
「花式 SQL 大法好」,本篇是使用 Grafana 與 MySQL,中間經過一連串複雜且花式的 SQL query XD
依靠這方法我們成功找出幾次系統隱藏性的錯誤,也可以快速的知道近期的趨勢如何,只要設定你想觀察的區間有多長。