数据格式

创建时间:2024-11-01 最近修改时间:2024-11-01

#1. 数据格式

DeepFlow采集器将相同七元组(源目MAC 避免多租户IP冲突 、源目IP、源目端口、协议)聚合为网流,开发人员可请求DeepFlow数据节点,通过Clickhouse API读取或ZeroMQ实时获取所有采集器的网流数据。

#2. 指量标

详细指标量列表参考全景图功能规格

#3. 资源标记

指标数据

#4. API说明

  • TOP 柱/饼/折线图

    • URL:POST /api/statistics/v1/stats/querier/Top
    • 请求与返回的字段说明
      • Request Body
      {
        "DATABASE": "flow_log", // 数据库名称,目前日志数据固定为 flow_log
        "TABLE": "l4_flow_log", // 数据表名称,l4_flow_log(流日志)/l7_flow_log(调用日志)
        "SORT": {
          "ORDER_BY": "xxxx", // 指定排序的指标量
          "SORTED_BY": "DESC" // 指定倒序(DESC)/正序(ASC)排序
        },
        "QUERIES": [
          {
            "QUERY_ID": "R1", // 查询标识
            "SELECT": "xxxx", // 指定 API 返回哪些字段
            "WHERE": "xxxx", // 按需指定过滤条件
            "GROUP_BY": "xxxx" // 指定分组条件
          }
        ],
        "TOP": "5", // 指定 TOP 取值
        "time_end": 1692082502, // 结束时间
        "time_start": 1692081602 // 开始时间
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      • Response
      {
        "OPT_STATUS": "SUCCESS", // API调用结果是否成功,SUCCESS表示成功,其余字段表示失败
        "DESCRIPTION": "",
        "DATA": [ // 具体统计数据
          {
            "_querier_region": "BeiJing" // 查询区域
            // 返回 SELECT 中指定的其他字段
          },
          ...
        ]
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
    • 举例:获取流量速率 TOP 5 的 POD
      • Request Body
      {
        "DATABASE": "flow_log", // 数据库名称,目前指标数据固定为 flow_metrics
        "TABLE": "l4_flow_log", // 数据表名称
        "SORT": {
          "ORDER_BY": "'流量速率'", // 指定排序的指标量
          "SORTED_BY": "DESC" // 指定倒序(DESC)/正序(ASC)排序
        },
        "QUERIES": [
          {
            "QUERY_ID": "R1", // 查询标识
            // 指定API返回哪些字段,其中:query_id(查询标识)/node_type(节点类型)/icon_id(节点图标)是为了 DeepFlow 页面显示增加的字段,客户环境调用可不用携带
            "SELECT": "newTag('R1') as query_id, PerSecond(Avg(`byte`)) AS `流量速率`, node_type(pod) AS `node_type`, icon_id(pod) AS `icon_id`, pod_id, pod",
            "WHERE": "xxxx", // 按需指定过滤条件
            "GROUP_BY": "pod, pod_id, `node_type`" // 指定分组条件
          }
        ],
        "TOP": "5", // 指定 TOP 取值
        "time_end": 1692082502, // 结束时间
        "time_start": 1692081602 // 开始时间
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      • Response
      {
        "OPT_STATUS": "SUCCESS", // API调用结果是否成功,SUCCESS表示成功,其余字段表示失败
        "DESCRIPTION": "",
        "DATA": [ // 具体统计数据
          {
            "query_id": "R1", // 查询标识
            "node_type": "pod", // 节点类型
            "icon_id": -17, // 节点图标标识
            "pod_id": xxxx, // POD ID
            "pod": "deepflow-server-xxx", // POD名称
            "流量速率": 1218970.8369047618,
            "_querier_region": "BeiJing" // 查询区域
          },
          ...
        ]
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
  • 表格

    • URL:/api/statistics/v1/stats/querier/List
    • 请求与返回的字段说明
      • Request Body
      {
        "DATABASE": "flow_log", // 数据库名称,目前日志数据固定为 flow_log
        "TABLE": "l4_flow_log", // 数据表名称,l4_flow_log(流日志)/l7_flow_log(调用日志)
        "SORT": {
          "ORDER_BY": "xxxx", // 指定排序的指标量
          "SORTED_BY": "DESC" // 指定倒序(DESC)/正序(ASC)排序
        },
        "QUERIES": [
          {
            "QUERY_ID": "R1", // 查询标识
            "SELECT": "xxxx", // 指定 API 返回哪些字段
            "WHERE": "xxxx", // 按需指定过滤条件
            "GROUP_BY": "xxxx" // 指定分组条件
          }
        ],
        "PAGE_INDEX": 1, // 分页信息,指定查询第几页数据
        "PAGE_SIZE": 50, // 分页信息,指定每页数据的条数
        "time_end": 1692082502, // 结束时间
        "time_start": 1692081602 // 开始时间
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      • Response
      {
        "OPT_STATUS": "SUCCESS", // API调用结果是否成功,SUCCESS表示成功,其余字段表示失败
        "DESCRIPTION": "",
        "DATA": [ // 具体统计数据
          {
            "_querier_region": "BeiJing" // 查询区域
            // 返回 SELECT 中指定的其他字段
          },
          ...
        ]
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
    • 举例:获取不同 POD 的流量速率列表
      • Request Body
      {
        "DATABASE": "flow_log", // 数据库名称,目前日志数据固定为 flow_log
        "TABLE": "l4_flow_log", // 数据表名称,l4_flow_log(流日志)/l7_flow_log(调用日志)
        "SORT": {
          "ORDER_BY": "'流量速率'", // 指定排序的指标量
          "SORTED_BY": "DESC" // 指定倒序(DESC)/正序(ASC)排序
        },
        "QUERIES": [
          {
            "QUERY_ID": "R1", // 查询标识
            // 指定API返回哪些字段,其中:query_id(查询标识)/node_type(节点类型)/icon_id(节点图标)是为了 DeepFlow 页面显示增加的字段,客户环境调用可不用携带
            "SELECT": "newTag('R1') as query_id, PerSecond(Avg(`byte`)) AS `流量速率`, node_type(pod) AS `node_type`, icon_id(pod) AS `icon_id`, pod_id, pod",
            "WHERE": "xxxx", // 按需指定过滤条件
            "GROUP_BY": "pod, pod_id, `node_type`" // 指定分组条件
          }
        ],
        "PAGE_INDEX": 1, // 分页信息,指定查询第几页数据
        "PAGE_SIZE": 50, // 分页信息,指定每页数据的条数
        "time_end": 1692082502, // 结束时间
        "time_start": 1692081602 // 开始时间
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      • Response
      {
        "OPT_STATUS": "SUCCESS", // API调用结果是否成功,SUCCESS表示成功,其余字段表示失败
        "DESCRIPTION": "",
        "DATA": [ // 具体统计数据
          {
            "query_id": "R1", // 查询标识
            "node_type": "pod", // 节点类型
            "icon_id": -17, // 节点图标标识
            "pod_id": xxxx, // POD ID
            "pod": "deepflow-server-xxx", // POD名称
            "流量速率": 1218970.8369047618,
            "_querier_region": "BeiJing" // 查询区域
          },
          ...
        ]
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
  • 拓扑

    • URL:POST /api/statistics/v1/stats/querier/Topo
    • 请求与返回的字段说明
      • Request Body
      {
        "DATABASE": "flow_log", // 数据库名称,目前日志数据固定为 flow_log
        "TABLE": "l4_flow_log", // 数据表名称,l4_flow_log(流日志)/l7_flow_log(调用日志)
        "SORT": {
          "ORDER_BY": "xxxx", // 指定排序的指标量
          "SORTED_BY": "DESC" // 指定倒序(DESC)/正序(ASC)排序
        },
        "QUERIES": [
          {
            "QUERY_ID": "R1-R2", // 查询标识
            "SELECT": "xxxx", // 指定 API 返回哪些字段
            "WHERE": "xxxx", // 按需指定过滤条件
            "GROUP_BY": "xxxx", // 指定分组条件
            "CTAGS": [ // SELECT字段中的客户端Tag字段
              "xxxx",
              ...
            ],
            "STAGS": [ // SELECT字段中的服务端Tag字段
              "xxxx",
              ...
            ],
            "METRICS": [ // 指定查询的指标量
              "xxxx",
              ...
            ]
          }
        ],
        "TOP": "50", // 指定 TOP 取值
        "time_end": 1692082502, // 结束时间
        "time_start": 1692081602 // 开始时间
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      • Response
      {
        "OPT_STATUS": "SUCCESS", // API调用结果是否成功,SUCCESS表示成功,其余字段表示失败
        "DESCRIPTION": "",
        "DATA": { // 具体统计数据
          "instance_data": [ // 拓扑中点的信息
            {
              "_querier_region": "BeiJing" // 查询区域
              "rs_set_id": "R1", // 服务集合标识
              "uid": "xxxx", // 节点唯一标识
              "role": "c", // 当前节点作为客户端 c/服务端 s
               // 返回 SELECT 中的 CTAGS 或者 STAGS 字段
               // 返回指标量
            },
            ...
          ],
          "peers_data": [
            {
              "_querier_region": "BeiJing" // 查询区域
              "query_id": "R1-R1", // 查询标识
              "uid_0": "xxxx", // 客户端节点唯一标识
              "uid_1": "xxxx", // 服务端节点唯一标识
              // 返回 SELECT 中指定的字段
            },
            ...
          ]
        }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
    • 举例:获取基于流量速率 TOP 20 的 POD 流量拓扑
      • Request Body
      {
        "DATABASE": "flow_log", // 数据库名称,目前日志数据固定为 flow_log
        "TABLE": "l4_flow_log", // 数据表名称,l4_flow_log(流日志)/l7_flow_log(调用日志)
        "SORT": {
          "ORDER_BY": "xxxx", // 指定排序的指标量
          "SORTED_BY": "DESC" // 指定倒序(DESC)/正序(ASC)排序
        },
        "QUERIES": [
          {
            "QUERY_ID": "R1-R2", // 查询标识
            // 指定API返回哪些字段,其中:query_id(查询标识)/node_type(节点类型)/icon_id(节点图标)是为了DeepFlow页面显示增加的字段,客户环境调用可不用携带
            "SELECT": "newTag('R1-R1') as query_id, PerSecond(Avg(`byte`)) AS `流量速率`, node_type(pod_0) AS `client_node_type`, icon_id(pod_0) AS `client_icon_id`, pod_id_0, pod_0, Enum(tap_side), tap_side, node_type(pod_1) AS `server_node_type`, icon_id(pod_1) AS `server_icon_id`, pod_id_1, pod_1, observation_point",
            "WHERE": "xxxx", // 按需指定过滤条件
            "GROUP_BY": "observation_point, pod_0, pod_id_0, `client_node_type`, pod_1, is_internet_1, pod_id_1, `server_node_type`", // 指定分组条件
            "CTAGS": [ // SELECT字段中的客户端Tag字段
              "node_type(pod_0) AS `client_node_type`",
              "icon_id(pod_0) AS `client_icon_id`",
              "pod_id_0",
              "pod_0",
              "observation_point"
            ],
            "STAGS": [ // SELECT字段中的服务端Tag字段
              "node_type(pod_1) AS `server_node_type`",
              "icon_id(pod_1) AS `server_icon_id`",
              "pod_id_1",
              "pod_1",
              "observation_point"
            ],
            "METRICS": [ // 指定查询的指标量
              "PerSecond(Avg(`byte`)) AS `流量速率`"
            ]
          }
        ],
        "TOP": "20", // 指定 TOP 取值
        "time_end": 1692082502, // 结束时间
        "time_start": 1692081602 // 开始时间
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      • Response
      {
        "OPT_STATUS": "SUCCESS", // API调用结果是否成功,SUCCESS表示成功,其余字段表示失败
        "DESCRIPTION": "",
        "DATA": { // 具体统计数据
          "instance_data": [
            {
              "_querier_region": "BeiJing" // 查询区域
              "rs_set_id": "R1", // 服务集合标识
              "uid": "icon_id=-17,node_type=pod,pod=deepflow-server-xxxx,pod_id=xxxx,rs_set_id=R1", // 节点唯一标识
              "observation_point": "s", // 观测点
              "流量速率": 773010.0125,
              "role": "c", // 当前节点作为客户端/服务端
              "node_type": "pod", // 节点类型
              "icon_id": -17, // 节点图标ID
              "pod_id": xxxx, // POD ID
              "pod": "deepflow-server-xxxx" // POD名称
            },
            ...
          ],
          "peers_data": [
            {
              "_querier_region": "BeiJing" // 查询区域
              "query_id": "R1-R1", // 查询标识
              "uid_0": "icon_id=-17,node_type=pod,pod=deepflow-server-xxxx,pod_id=xxxx,rs_set_id=R1", // 客户端节点唯一标识
              "uid_1": "icon_id=-17,node_type=pod,pod=deepflow-server-xxx,pod_id=xxxx,rs_set_id=R1" // 服务端节点唯一标识
              "client_node_type": "pod", // 客户端节点类型
              "client_icon_id": -17, // 客户端节点图标
              "pod_id_0": xxxx, // 客户端POD ID
              "pod_0": "deepflow-server-xxxx", // 客户端POD名称
              "observation_point": "s", // 观测点
              "server_node_type": "pod", // 服务端节点类型
              "server_icon_id": -17, // 服务端节点图标
              "pod_id_1": xxxx, // 服务端POD ID
              "pod_1": "deepflow-server-xxxx", // 服务端POD名称
              "流量速率": 1421.3666666667,
            },
            ...
          ]
        }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40