指标量

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

#1. 指标量

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

#2. 资源标记

DeepFlow数据节点运行自研的分布式时序数据库,用户可以对所有指标量从多种角度进行聚合查询。得益于DeepFlow控制器和云平台、容器平台进行资源同步,并将流量的源、目的地址与资源进行关联,用户可从十余个维度对资源进行分组聚合查询:

  • 资源池:区域(Region)、可用区(AZ,Availability Zone)
  • 虚拟化:宿主机、云服务器
  • 容器:集群、节点、命名空间、容器服务、工作负载、POD
  • 网络:VPC(Virtual Private Cloud)、子网、IP地址

#3. 数据的时间精度

参照系统/数据节点/监控存储配置中的数据源列表

#4. API说明

  • TOP 柱/饼/折线图

    • URL:POST /api/statistics/v1/stats/querier/Top
    • 请求与返回的字段说明
      • Request Body
      {
        "DATA_SOURCE": "1m", // 数据表的时间粒度,可取值 1m 或者 1s
        "DATABASE": "flow_metrics", // 数据库名称,目前指标数据固定为 flow_metrics
        "TABLE": "network", // 数据表名称
                            // 网络指标数据可取值:network(服务)/network_map(路径)
                            // 应用指标数据可取值:application(服务)/application_map(路径)
        "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
      20
      21
      22
      • 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
      {
        "DATA_SOURCE": "1m", // 数据表的时间粒度,可取值 1m 或者 1s
        "DATABASE": "flow_metrics", // 数据库名称,目前指标数据固定为 flow_metrics
        "TABLE": "network", // 数据表名称
        "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
      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:/api/statistics/v1/stats/querier/List
    • 请求与返回的字段说明
      • Request Body
      {
        "DATA_SOURCE": "1m", // 数据表的时间粒度,可取值 1m 或者 1s
        "DATABASE": "flow_metrics", // 数据库名称,目前指标数据固定为 flow_metrics
        "TABLE": "network", // 数据表名称
                            // 网络指标数据可取值:network(服务)/network_map(路径)
                            // 应用指标数据可取值:application(服务)/application_map(路径)
        "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
      21
      22
      23
      • 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
      {
        "DATA_SOURCE": "1m", // 数据表的时间粒度,可取值 1m 或者 1s
        "DATABASE": "flow_metrics", // 数据库名称,目前指标数据固定为 flow_metrics
        "TABLE": "network", // 数据表名称
        "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
      22
      • 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
      {
        "DATA_SOURCE": "1m", // 数据表的时间粒度,可取值 1m 或者 1s
        "DATABASE": "flow_metrics", // 数据库名称,目前指标数据固定为 flow_metrics
        "TABLE": "network", // 数据表名称
                            // 网络指标数据可取值:network_map(路径)
                            // 应用指标数据可取值:application_map(路径)
        "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
      32
      33
      34
      • 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
      {
        "DATA_SOURCE": "1m", // 数据表的时间粒度,可取值 1m 或者 1s
        "DATABASE": "flow_metrics", // 数据库名称,目前指标数据固定为 flow_metrics
        "TABLE": "network", // 数据表名称
                            // 网络指标数据可取值:network_map(路径)
                            // 应用指标数据可取值:application_map(路径)
        "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
      38
      39
      40
      • 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