本文介紹桑基圖操作步驟及案例。
簡介
桑基圖 (Sankey Diagram),是一種特定類型的流圖,用於描述一組值到另一組值的流向。適合網路流量等情境,通常包含3組值source
、target
以及value
。source
和target
描述了節點的關係,而value
描述了該source
和target
之間邊的關係。
基本構成如下:
節點
邊
桑基圖具有以下特點:
初始流量和結束流量相同,所有主邊寬度的總和與所有分出去的分邊寬度總體和近似值,保持流量的平衡。
兩列之間邊的寬度代表了特定狀態下的流量大小,不同的邊代表了不同的流量分流情況,它的寬度成比例地顯示此邊佔有的流量。
節點不同的寬度代表了特定狀態下的流量大小。
例如以下資料可以用桑基圖表示。
source | target | value |
node1 | node2 | 14 |
node1 | node3 | 12 |
node3 | node4 | 5 |
… | .. | … |
使用如下桑基圖描述上述資料的關係。
操作步驟
在Project列表地區,單擊目標Project。
在 頁簽中,單擊目標Logstore。
輸入查詢和分析語句,然後單擊最近15分鐘,設定查詢和分析的時間範圍。
更多資訊,請參見步驟一:輸入查詢和分析語句。
單擊屬性配置的,進入桑基圖展示頁面。
在屬性配置頁簽中,配置圖表屬性。
配置項
說明
起點列
描述起始節點。
終點列
描述終點節點。
數值列
起始節點和終點節點之間流量值。
邊距
座標軸距離圖表邊界距離,包括上邊距、下邊距、右邊距和左邊距。
普通桑基圖樣本
如果日誌欄位包含了source
、target
和value
,即每條日誌本身就是節點和邊的關係,可以通過嵌套子查詢擷取到steamValue
的總和。
* | select sourceValue, targetValue, sum(streamValue) as streamValue from (select sourceValue, targetValue,
streamValue, __time__ from log group by sourceValue, targetValue, streamValue, __time__ order by __time__ desc) group by sourceValue,
targetValue
負載平衡7層訪問日誌情境
Log Service支援使用前須知,可以直接通過訪問日誌繪製桑基圖。
* | select COALESCE(client_ip, slbid, host) as source, COALESCE(host, slbid, client_ip) as dest, sum(request_length) as inflow group by grouping sets( (client_ip, slbid), (slbid, host))