数据格式
创建时间: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