日誌服務高級圖表介紹

日誌服務高級圖表

一張好圖勝過千言萬語。所謂的高級圖表,並不是指使用上的高級,而是相對於一些基礎圖表(線圖、餅圖),在一些特殊場景下使用它們能發揮出來更好的效果。
undefined
如圖所示,這些高級圖表目前在阿里雲日誌服務控制檯都是已經支持的。下面將簡單介紹這些圖表,以及它們的使用場景。

變更圖

簡介:通過繪製每個數據點的X軸起始值來顯示時間範圍。使用的每個時間值 被繪製爲條形柱的上限和下限。這裏需要注意的是,X軸的數值必須是Unix時間戳。x軸的顯示會根據時間戳的範圍,進行格式化,動態的顯示成時間字符串。
使用場景:延遲分佈、trace分析
實踐:通過變更圖表,分析網站請求超時問題。

* | select min(__time__) - random(4000) as startTime, max(__time__) + random(4000) as endTime , request_uri group by request_uri

查詢結果:
undefined
這個數據是一個簡單的mock數據。request_uri表示請求地址,startTime表示請求開始時間,endTime表示加載完成時間。類似這樣的場景,就可以利用我們的變更圖了。效果圖如下。
undefined
通過觀察藍色柱狀的長度,可以迅速發現那些地址的加載時間存在異常。

漏斗圖

簡介:漏斗圖適用於業務流程比較規範、週期長、環節多的單流程單向分析,通過漏斗各環節業務數據的比較能夠直觀地發現和說明問題所在的環節,進而做出決策。漏斗圖用梯形面積表示某個環節業務量與上一個環節之間的差異。漏斗圖從上到下,有邏輯上的順序關係,表現了隨着業務流程的推進業務目標完成的情況。
使用場景:流程流量分析
undefined
以電商網站用戶操作的信息爲例。我們可以看到用戶從“瀏覽網站”到“完成交易”整體的轉換情況。通過漏斗圖,我們能看到各個流程上轉換的情況,這可以幫助我們快速的找出那個環節出了問題,需要優化的環節是那部分。
實踐:模擬一個幫助文檔的點擊信息日誌,通過點擊總數,來分析每個頁面之間的點擊轉換情況。
undefined
通過查詢語句,查詢出文檔每一頁的點擊情況。

event.type:click and (event.target: register  or event.target: button_19 or event.target:button_18 or event.target: button_17  or event.target:  button_16) | select "event.target" as target ,  count(1) as click_count  group by target order by strpos('register,button_19,button_18,button_17,button_16'  , "event.target")

查詢結果:
undefined
這裏數據表示從第一頁到最後一頁的總點擊量。
undefined
通過漏斗圖的展示,可以知道有多少用戶是完整看完了幫助文檔,以及整個流程自上而下的點擊量變化。這能幫助我們快速分析出大部分用戶是在哪一個頁面停止繼續瀏覽。然後針對性的對這個頁面進行優化,進步一增強用戶的引導,提升文檔整體的完整閱讀率。

氣泡圖

簡介:氣泡圖通常用於比較和展示不同類別圓點(這裏我們稱爲氣泡)之間的關係,通過氣泡的位置以及面積大小。從整體上看,氣泡圖可用於分析數據之間的相關性。氣泡圖主要由三個維度組成:X軸,Y軸,數值列(對應氣泡的大小)
使用場景:監控,異常分析
實踐:通過氣泡圖分析請求的異常情況,我們首先預設一些請求次數上限的閾值。通過超出閾值來判斷異常情況。
查詢語句:

* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i') as minute, case 
when method = 'GET' and COUNT(1) > 9000 then 3 when method = 'GET' and COUNT(1) > 8500 then 2 when method = 'GET' and COUNT(1) > 8000 then 1 
when method = 'POST' and COUNT(1) > 3000 then 3
when method = 'DELETE' and COUNT(1) > 1500 then 3
else 0 end as level,  method group by minute, method order by minute asc limit 1000

查詢結果:
undefined
這裏通過查詢語句,將每分鐘GET請求超過9000,8500,8000的異常等級分別用level:3,2,1來表示。然後通過level作爲氣泡圖的數值列,就可以得到一張請求異常分析的圖表了。
undefined
通過氣泡圖,我們可以快速分析出那些時間點對應的請求發生了異常,以及異常發生的嚴重程度。

迷你圖

簡介:在數據處理中,圖表往往會比較直觀形象的反映數據的變化,但是普通圖表佔空間比較大,排版也需要花費很多時間,因此迷你圖應運而生。簡而言之,迷你圖就是在表格中顯示基礎圖形。迷你圖更多的是爲了展示指標趨勢的變化,對於圖形的X軸和Y軸具體信息它不會顯示出來,所以我們在使用它的時候,需要考慮到這點。還有一點需要注意的是,繪製迷你圖,我們要確保數據是一個數字數組類型。
使用場景:多個指標的趨勢變化
實踐:以疫情數據分析爲例,我們想知道每個國家的病例發展趨勢,並在一個大盤中顯示出來。如果採用單個基礎圖形進行繪製,這需要佔用很大的空間,而且瀏覽器加載也會較慢。迷你圖正好解決了這個問題。
查詢語句:

version: test and type: country_stat | select "國家", "確診", "確診趨勢", "治癒趨勢", "疑似趨勢" from (select country as "國家", quezhen as "確診", quezhen_hist as "確診趨勢", zhiyu_hist as "治癒趨勢", yisi_hist as "疑似趨勢"  from log l right join (select max(version) as version from log) r on  l.version =  r.version order by quezhen desc, zhiyu desc, dead desc, yisi desc, country)

查詢結果:
undefined
通過查詢,得到了,"確診趨勢", "治癒趨勢", "疑似趨勢",三個趨勢的數字數組信息。然後進行迷你圖相關的屬性配置。
undefined
最後生成圖表如下:
undefined
通過一張圖表,就能讓我們一眼看到大量數據的趨勢變化,這種可讀性是非常強的。

時間軸

簡介:時間軸是依據時間順序,把一方面或多方面的事件串聯起來,形成相對完整的記錄體系。在時間軸上面,我們可以清晰的觀測到數據在某一個時間點的數據情況,它的優點主要是具有連續性和準確性。
使用場景:新聞動態類場景
實踐:還是以疫情數據分析爲例。通過時間軸來展示疫情的實時動態。
查詢語句:

type: news | select news_time as "發佈時間", author as "發佈者", title as "標題", source as "來源網站",
case when strpos(url, 'https://') = 1 then substr(url, 9) when  strpos(url, 'http://') = 1 then substr(url, 8) else url end as url from log l right join 
(select max(version) as version from log) r on  l.version =  r.version order by news_time asc limit 50

查詢結果:
undefined
對於這類信息,我們更多關心的是新聞標題和發佈者,以及新聞發佈時間。我們可以在時間軸屬性配置裏面,在“顯示列”中選擇“標題”和“發佈者”,然後在提示列中選擇完整的列。
undefined
最終生成的圖表如下:
undefined
鼠標放上去顯示詳細信息:
undefined

寫在最後

這裏關於高級圖表的使用,是日誌服務可視化中很小一部分功能。目前日誌服務支持的可視化組件類型有30+,覆蓋了絕大部分數據可視化場景。日誌服務可視化目前經歷了大量場景的錘鍊,在集團內部得到了廣泛使用。如果您有更好的想法或者建議,歡迎加入釘釘羣進行討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章