本文介绍桑基图操作步骤及案例。

简介

桑基图 (Sankey Diagram),是一种特定类型的流图,用于描述一组值到另一组值的流向。适合网络流量等场景,通常包含3组值sourcetarget以及valuesourcetarget描述了节点的关系,而value描述了该sourcetarget之间边的关系。

基本构成如下:
  • 节点
桑基图具有以下特点:
  • 起始流量和结束流量相同,所有主支宽度的总和与所有分出去的分支宽度总和相等,保持能量的平衡。
  • 在内部,不同的线条代表了不同的流量分流情况,它的宽度成比例地显示此分支占有的流量。
  • 节点不同的宽度代表了特定状态下的流量大小。
例如以下数据可以用桑基图表示。
source target value
node1 node2 14
node1 node3 12
node3 node4 5
..
使用如下桑基图描述上述数据的关系。桑基图的数据关系

操作步骤

  1. 在查询页面的查询框中输入查询分析语句,选择时间范围后单击查询/分析
    完成查询与分析后,默认显示统计图表页签。
  2. 单击桑基图-001,进入桑基图展示页面。
  3. 属性配置页签中,配置图表属性。
    配置项 说明
    起点列 描述起始节点。
    终点列 描述终点节点。
    数值列 链接起点节点和终点节点的值。
    边距 坐标轴距离图表边界距离,包括上边距下边距右边距左边距

普通桑基图示例

如果日志字段包含了sourcetargetvalue,即每条日志本身就是节点和边的关系,可以通过嵌套子查询获取到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层访问日志场景

日志服务支持负载均衡7层访问日志,可以直接通过访问日志绘制桑基图。

* | 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))嵌套子查询