サンキーダイアグラム (Sankey diagram) は、あるデータセットから、別のデータセットへのトラフィック量を表現することができる、特殊なフローチャートです。例えば、sourcetarget および value の 3 つの値で構成されるネットワークトラフィックの量を表すのに適しています。各ノードを source および target、また、ノード間の関係 (value) を線で表現します。

特徴

サンキーダイアグラムの特徴は、以下のとおりです。

  • 始点と終点のトラフィック量は等しく、また、主線の合計幅と副線の合計幅は等しく保たれます。
  • 線で各トラフィックは表現され、線の太さで各トラフィックの量を示します。
  • ノードの幅は、特定の状況下におけるトラフィックの量を示します。
たとえば、下表のデータをサンキーダイアグラムに表示することができます。
Source Target Value
node1 node2 14
node1 node3 12
node3 node4 5
..

上記のデータの関係は、下図のように表現されます。

図 1. サンキーダイアグラムデータ関係


基本コンポーネント

  • ノード

設定項目

設定項目 説明
開始列 開始ノード
終了列 終了ノード
数値列 開始ノードと終了ノードを結ぶ線の値
パディング 座標軸とグラフ境界線の間の間隔

手順

  1. 照会/分析ページのクエリ欄にクエリステートメントを入力し、期間を選択して、照会/分析をクリックします。
  2. グラフタブの (サンキーダイアグラム) をクリックします。
  3. グラフのプロパティを設定します。

通常のサンキーダイアグラム

ログに sourcetargetvalue の各フィールドが含まれる場合、各ログはノードとエッジの関係を示します。したがって、入れ子サブクエリ を使用して streamValueの合計値を取得することができます。
* | 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
図 2. 通常のサンキーダイアグラム


レイヤー 7 Server Load Balancer のアクセスログのシナリオ

Log Service では、レイヤー 7 Server Load Balancer のアクセスログを収集することができます。そのアクセスログのサンキーダイアグラムを作成します。

* | 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))
図 3. 入れ子サブクエリ