网络性能指标

# 1. 服务列表

无需向应用中插入任何代码,DeepFlow 自动生成所有服务的网络性能指标。 数据库表名:flow_metrics.vtap_flow_port

# 1.1 标签

自动注入的 Tag 列表:IP、协议、端口、采集位置、云资源、K8s 资源、K8s 自定义 Label,详细字段描述如下。

Name DisplayName Description
time 时间
region 区域
az 可用区
host 宿主机 承载虚拟机的宿主机。
chost 云服务器 包括虚拟机、裸金属服务器。
vpc VPC
subnet 子网
router 路由器
dhcpgw DHCP 网关
lb 负载均衡器
lb_listener 负载均衡监听器
natgw NAT 网关
redis Redis
rds RDS
pod_cluster K8s 容器集群
pod_ns K8s 命名空间
pod_node K8s 容器节点
pod_ingress K8s Ingress
pod_service K8s 容器服务
pod_group_type K8s 工作负载类型
pod_group K8s 工作负载 例如 Deployment、StatefulSet、Daemonset 等。
pod K8s 容器 POD
service 服务
resource_gl0_type 类型-容器 POD 优先 已废弃,请使用 auto_instance_type。
resource_gl0 资源-容器 POD 优先 已废弃,请使用 auto_instance。
resource_gl1_type 类型-工作负载优先 已废弃,请使用 auto_service_type。
resource_gl1 资源-工作负载优先 已废弃,请使用 auto_service。
resource_gl2_type 类型-服务优先 已废弃,请使用 auto_service_type。
resource_gl2 资源-服务优先 已废弃,请使用 auto_service。
auto_instance_type 类型-容器 POD 优先 auto_instance实例对应的类型。
auto_instance 资源-容器 POD 优先 IP 对应的实例,实例为IP时,auto_instance_id显示为子网ID。
auto_service_type 类型-服务优先 auto_service实例对应的类型。
auto_service 资源-服务优先 auto_instance基础上,将容器服务的 ClusterIP 与工作负载聚合为服务,实例为IP时,auto_service_id显示为子网ID。
gprocess 进程
host_ip 宿主机 宿主机的管理 IP。
host_hostname 宿主机 宿主机的 Hostname。
chost_ip 云服务器 云服务器的主 IP。
chost_hostname 云服务器 云服务器的 Hostname。
pod_node_ip K8s 容器节点 容器节点的主 IP。
pod_node_hostname K8s 容器节点 容器节点的 Hostname。
k8s.label K8s Label
k8s.annotation K8s Annotation
k8s.env K8s Env
cloud.tag Cloud Tag
os.app OS APP
ip IP 地址
is_ipv4 IPv4 标志
protocol 网络协议
server_port 服务端口
tap 采集点
vtap 采集器
signal_source 信号源
role 角色

generate from csv file: vtap_flow_port.ch

# 1.2 指标

Metrics 列表:吞吐、负载、时延、TCP异常、重传、零窗,详细字段描述如下。

Field DisplayName Unit Description
byte 字节 字节 发送与接收字节的总和,包含从 Ether 头开始的所有内容
byte_tx 发送字节 字节 发送的字节总和,包含从 Ether 头开始的所有内容
byte_rx 接收字节 字节 接受的字节总和,包含从 Ether 头开始的所有内容
packet 包数 发送和接收包数的总和
packet_tx 发送包数 发送的包数总和
packet_rx 接收包数 接收的包数总和
l3_byte 网络层载荷 字节 发送与接收字节的总和,包含 IP 头之后的总字节数
l3_byte_tx 发送网络层载荷 字节 发送字节的总和,包含 IP 头之后的总字节数
l3_byte_rx 接收网络层载荷 字节 接收字节的总和,包含 IP 头之后的总字节数
bpp 平均包长 字节 平均包长,通过字节 / 包数计算得到,即 byte / packet
bpp_tx 平均发送包长 字节 发送包的平均长度,通过发送字节 / 发送包数计算得到,即 byte_tx / packet_tx
bpp_rx 平均接收包长 字节 接收包的平均长度,通过接收字节 / 接收包数计算得到,即 byte_rx / packet_rx
new_flow 新建连接 连接 相比上个统计周期,新出现的连接总数,连接的定义详见文档
closed_flow 关闭连接 连接 在当前统计周期内关闭的连接总数,连接的定义详见文档
flow_load 活跃连接 连接 统计周期内活跃的连接数,连接的定义详见文档
syn_count SYN 包数 TCP 三次握手阶段 SYN 包的总数
synack_count SYN-ACK 包数 TCP 三次握手阶段 SYN-ACK 包的总数
l4_byte 传输层载荷 字节 发送与接收字节的总和,包含 TCP/UDP 的 payload 的长度
l4_byte_tx 发送传输层载荷 字节 发送字节的总和,包含 TCP/UDP 的 payload 的长度
l4_byte_rx 接收传输层载荷 字节 接收字节的总和,包含 TCP/UDP 的 payload 的长度
retrans_syn SYN 重传 TCP 三次握手阶段 SYN 包的重传次数
retrans_synack SYN-ACK 重传 TCP 三次握手阶段 SYN 包的重传次数
retrans TCP 重传 TCP 包重传的次数,包含客户端和服务端重传次数
retrans_tx TCP 客户端重传 客户端发送给服务端,TCP 包重传的次数
retrans_rx TCP 服务端重传 客户端接收到的服务端,TCP 包重传的次数
zero_win TCP 零窗 TCP 包零窗的次数
zero_win_tx TCP 客户端零窗 客户端发送给服务端,TCP 包零窗的次数
zero_win_rx TCP 服务端零窗 客户端接收到的服务端,TCP 包零窗的次数
retrans_syn_ratio SYN 重传比例 % SYN 重传比例,通过 TCP SYN 重传 / TCP SYN 包数计算得,即 retrans_syn / syn_count
retrans_synack_ratio SYN-ACK 重传比例 % SYN-ACK 重传比例,通过 TCP SYN-ACK 重传 / TCP SYN-ACK 包数计算得,即 retrans_synack / synack_count
retrans_ratio TCP 重传比例 % TCP 重传比例,通过TCP 重传 / 所有的包计算得,即 retrans / packet
retrans_tx_ratio TCP 客户端重传比例 % TCP 客户端重传比例,通过 TCP 客户端重传 / 所有的发送包数计算得,即 retrans_tx / packet_tx
retrans_rx_ratio TCP 服务端重传比例 % TCP 服务端重传比例,通过TCP 服务端重传 / 所有的接受包数计算得,即 retrans_rx /packet_rx
zero_win_ratio TCP 零窗比例 % TCP 零窗比例,通过TCP 零窗比例 / 所有的包计算得,即 zero_win /packet
zero_win_tx_ratio TCP 客户端零窗比例 % TCP 客户端零窗比例,通过TCP 客户端零窗 / 所有的发送包数计算得,即 zero_win_tx /packet_tx
zero_win_rx_ratio TCP 服务端零窗比例 % TCP 服务端零窗比例,通过TCP 服务端零窗 / 所有的接受包数计算得,即 zero_win_rx /packet_rx
tcp_establish_fail 建连-失败次数 TCP 建连失败次数,建连失败场景见文档描述
client_establish_fail 建连-客户端失败次数 TCP 建连过程中,客户端导致的失败次数
server_establish_fail 建连-服务端失败次数 TCP 建连过程中,服务端导致的失败次数
tcp_establish_fail_ratio 建连-失败比例 % 建连-失败比例,通过 TCP 建连-失败次数 / 所有的关闭连接计算得,即 tcp_establish_fail / close_flow
client_establish_fail_ratio 建连-客户端失败比例 % 建连-客户端失败比例,通过 TCP 建连-客户端失败次数 / 所有的关闭连接 计算得,即 client_establish_fail / close_flow
server_establish_fail_ratio 建连-服务端失败比例 % 建连-服务端失败比例,通过 TCP 建连-服务端失败次数 / 所有的关闭连接 计算得,即 server_establish_fail / close_flow
tcp_transfer_fail 传输-失败次数 TCP 传输过程中失败的次数,传输失败场景见文档描述,包含传输和断连的所有错误
tcp_transfer_fail_ratio 传输-失败比例 % 传输-失败比例,通过 TCP 传输-失败次数 / 所有的关闭连接计算得,即 tcp_transfer_fail / close_flow
tcp_rst_fail 重置次数 连接 TCP 连接被 RST 的次数,包含建连、传输、断连阶段的 RST
tcp_rst_fail_ratio 重置比例 % 重置比例,通过 TCP 重置次数 / 所有的关闭连接 计算得,即 tcp_rst_fail / close_flow
client_source_port_reuse 建连-客户端端口复用 连接 TCP 建连失败的场景之一,见文档描述
client_syn_repeat 建连-客户端 SYN 结束 连接 TCP 建连失败的场景之一,见文档描述
client_establish_other_rst 建连-客户端其他重置 连接 TCP 建连失败的场景之一,见文档描述
server_syn_ack_repeat 建连-服务端 SYN 结束 连接 TCP 建连失败的场景之一,见文档描述
server_reset 建连-服务端直接重置 连接 TCP 建连失败的场景之一,见文档描述
server_establish_other_rst 建连-服务端其他重置 连接 TCP 建连失败的场景之一,见文档描述
client_rst_flow 传输-客户端重置 连接 TCP 传输失败的场景之一,见文档描述
server_rst_flow 传输-服务端重置 连接 TCP 传输失败的场景之一,见文档描述
server_queue_lack 传输-服务端队列溢出 连接 TCP 传输失败的场景之一,见文档描述
tcp_timeout 传输-TCP 连接超时 连接 TCP 传输失败的场景之一,见文档描述
client_half_close_flow 断连-客户端半关 连接 TCP 传输失败的场景之一,见文档描述
server_half_close_flow 断连-服务端半关 连接 TCP 传输失败的场景之一,见文档描述
rtt 平均 TCP 建连时延 微秒 统计周期内,所有 TCP 建连时延的平均值,一次时延的计算见文档描述
rtt_client 平均 TCP 建连客户端时延 微秒 统计周期内,所有 TCP 建连客户端时延的平均值,一次时延的计算见文档描述
rtt_server 平均 TCP 建连服务端时延 微秒 统计周期内,所有 TCP 建连服务端时延的平均值,一次时延的计算见文档描述
srt 平均 TCP/ICMP 系统时延 微秒 统计周期内,所有 TCP/ICMP 系统时延的平均值,一次时延的计算见文档描述
art 平均数据时延 微秒 统计周期内,所有数据时延的平均值,数据时延包含 TCP/UDP,一次时延的计算见文档描述
cit 平均客户端等待时延 微秒 统计周期内,所有客户端等待时延的平均值,数据时延仅包含 TCP,一次时延的计算见文档描述
rtt_max 最大 TCP 建连时延 微秒 统计周期内,所有 TCP 建连时延的最大值,一次时延的计算见文档描述
rtt_client_max 最大 TCP 建连客户端时延 微秒 统计周期内,所有 TCP 建连客户端时延的最大值,一次时延的计算见文档描述
rtt_server_max 最大 TCP 建连服务端时延 微秒 统计周期内,所有 TCP 建连服务端时延的最大值,一次时延的计算见文档描述
srt_max 最大 TCP/ICMP 系统时延 微秒 统计周期内,所有 TCP/ICMP 系统时延的最大值,一次时延的计算见文档描述
art_max 最大数据时延 微秒 统计周期内,所有数据时延的最大值,数据时延包含 TCP/UDP,一次时延的计算见文档描述
cit_max 最大客户端等待时延 微秒 统计周期内,所有客户端等待时延的最大值,数据时延仅包含 TCP,一次时延的计算见文档描述
l7_request 应用请求 请求个数
l7_response 应用响应 响应个数
rrt 平均应用时延 微秒 统计周期内所有应用时延的平均值,一个应用时延由响应时间与请求时间的时差算得
rrt_max 最大应用时延 微秒 统计周期内所有应用时延的最大值,一个应用时延由响应时间与请求时间的时差算得
l7_error 应用异常 异常包含客户端异常 + 服务端异常,根据具体应用协议的响应码判断异常,不同协议的定义见 l7_flow_log 中 response_status 字段的说明
l7_client_error 应用客户端异常 根据具体应用协议的响应码判断异常,不同协议的定义见 l7_flow_log 中 response_status 字段的说明
l7_server_error 应用服务端异常 根据具体应用协议的响应码判断异常,不同协议的定义见 l7_flow_log 中 response_status 字段的说明
l7_timeout 应用超时 未采集到响应的请求总数,默认超时时间 TCP 1800s,UDP 150s
l7_error_ratio 应用异常比例 % 异常请求的百分比,通过异常 / 响应计算得,即 l7_error / l7_response
l7_client_error_ratio 应用客户端异常比例 % 客户端异常请求的百分比,通过客户端异常 / 响应计算得,即 l7_client_error / l7_response
l7_server_error_ratio 应用服务端异常比例 % 客户端异常请求的百分比,通过服务端异常 / 响应计算得,即 l7_server_error / l7_response
row 行数

generate from csv file: vtap_flow_port.ch

# 1.3 Grafana Dashboard

基于上述数据可通过 Grafana 构建丰富的 Dashboard。我们在 Grafana 中预置了一个 Network - K8s Pod Dashboard,效果图如下:

Network K8s Pod

Network K8s Pod

你也可以访问 DeepFlow Online Demo (opens new window) 查看效果。

# 2. 服务全景图

无需向应用中插入任何代码,DeepFlow 自动生成所有服务的全栈访问路径和网络性能指标。 数据库表名:flow_metrics.vtap_flow_edge_port

# 2.1 标签

自动注入的 Tag 列表:IP、协议、端口、采集位置、云资源、K8s 资源、K8s 自定义 Label,详细字段描述如下。

Name DisplayName Description
time 时间
region 区域
az 可用区
host 宿主机 承载虚拟机的宿主机。
chost 云服务器 包括虚拟机、裸金属服务器。
vpc VPC
subnet 子网
router 路由器
dhcpgw DHCP 网关
lb 负载均衡器
lb_listener 负载均衡监听器
natgw NAT 网关
redis Redis
rds RDS
pod_cluster K8s 容器集群
pod_ns K8s 命名空间
pod_node K8s 容器节点
pod_ingress K8s Ingress
pod_service K8s 容器服务
pod_group_type K8s 工作负载类型
pod_group K8s 工作负载 例如 Deployment、StatefulSet、Daemonset 等。
pod K8s 容器 POD
service 服务
resource_gl0_type 类型-容器 POD 优先 已废弃,请使用 auto_instance_type。
resource_gl0 资源-容器 POD 优先 已废弃,请使用 auto_instance。
resource_gl1_type 类型-工作负载优先 已废弃,请使用 auto_service_type。
resource_gl1 资源-工作负载优先 已废弃,请使用 auto_service。
resource_gl2_type 类型-服务优先 已废弃,请使用 auto_service_type。
resource_gl2 资源-服务优先 已废弃,请使用 auto_service。
auto_instance_type 类型-容器 POD 优先 auto_instance实例对应的类型。
auto_instance 资源-容器 POD 优先 IP 对应的实例,实例为IP时,auto_instance_id显示为子网ID。
auto_service_type 类型-服务优先 auto_service实例对应的类型。
auto_service 资源-服务优先 auto_instance基础上,将容器服务的 ClusterIP 与工作负载聚合为服务,实例为IP时,auto_service_id显示为子网ID。
gprocess 进程
tap_port_host 采集网卡所属宿主机
tap_port_chost 采集网卡所属云服务器
tap_port_pod_node 采集网卡所属容器节点
host_ip 宿主机 宿主机的管理 IP。
host_hostname 宿主机 宿主机的 Hostname。
chost_ip 云服务器 云服务器的主 IP。
chost_hostname 云服务器 云服务器的 Hostname。
pod_node_ip K8s 容器节点 容器节点的主 IP。
pod_node_hostname K8s 容器节点 容器节点的 Hostname。
k8s.label K8s Label
k8s.annotation K8s Annotation
k8s.env K8s Env
cloud.tag Cloud Tag
os.app OS APP
ip IP 地址
is_ipv4 IPv4 标志
is_internet Internet IP 标志 IP 地址是否为外部 Internet 地址。
protocol 网络协议
tunnel_type 隧道类型
server_port 服务端口
tap 采集点 Traffic Access Point,流量采集点,使用固定值(虚拟网络)表示云内流量,其他值表示传统 IDC 流量(支持最多 254 个自定义值表示镜像分光的位置)。
vtap 采集器
nat_source NAT 源
tap_port 采集位置标识 当采集位置类型为本地网卡时,此值表示采集网卡的 MAC 地址后缀(后四字节)。
tap_port_name 采集位置名称 当采集位置类型为本地网卡时,此值表示采集网卡的名称。
tap_port_type 采集位置类型 表示流量采集位置的类型,包括本地网卡(云内流量)、云网关网卡(云网关流量)、分光镜像(传统 IDC 流量)等。
tap_side 路径统计位置 采集位置在流量路径中所处的逻辑位置,例如客户端网卡、客户端容器节点、服务端容器节点、服务端网卡等。
signal_source 信号源

generate from csv file: vtap_flow_edge_port.ch

# 2.2 指标

Metrics 列表:吞吐、负载、时延、TCP异常、重传、零窗,详细字段描述如下。

Field DisplayName Unit Description
byte 字节 字节
byte_tx 发送字节 字节
byte_rx 接收字节 字节
packet 包数
packet_tx 发送包数
packet_rx 接收包数
l3_byte 网络层载荷 字节
l3_byte_tx 发送网络层载荷 字节
l3_byte_rx 接收网络层载荷 字节
bpp 平均包长 字节
bpp_tx 平均发送包长 字节
bpp_rx 平均接收包长 字节
new_flow 新建连接 连接
closed_flow 关闭连接 连接
flow_load 活跃连接 连接
syn_count SYN 包数
synack_count SYN-ACK 包数
l4_byte 传输层载荷 字节
l4_byte_tx 发送传输层载荷 字节
l4_byte_rx 接收传输层载荷 字节
direction_score 方向得分 得分越高时客户端、服务端方向的准确性越高,得分为 255 时方向一定是正确的。
retrans_syn SYN 重传
retrans_synack SYN-ACK 重传
retrans TCP 重传
retrans_tx TCP 客户端重传
retrans_rx TCP 服务端重传
zero_win TCP 零窗
zero_win_tx TCP 客户端零窗
zero_win_rx TCP 服务端零窗
retrans_syn_ratio SYN 重传比例 %
retrans_synack_ratio SYN-ACK 重传比例 %
retrans_ratio TCP 重传比例 %
retrans_tx_ratio TCP 客户端重传比例 %
retrans_rx_ratio TCP 服务端重传比例 %
zero_win_ratio TCP 零窗比例 %
zero_win_tx_ratio TCP 客户端零窗比例 %
zero_win_rx_ratio TCP 服务端零窗比例 %
tcp_establish_fail 建连-失败次数
client_establish_fail 建连-客户端失败次数
server_establish_fail 建连-服务端失败次数
tcp_establish_fail_ratio 建连-失败比例 %
client_establish_fail_ratio 建连-客户端失败比例 %
server_establish_fail_ratio 建连-服务端失败比例 %
tcp_transfer_fail 传输-失败次数 所有传输和断连错误。
tcp_transfer_fail_ratio 传输-失败比例 %
tcp_rst_fail 重置次数 连接 所有重置错误。
tcp_rst_fail_ratio 重置比例 %
client_source_port_reuse 建连-客户端端口复用 连接
client_syn_repeat 建连-客户端 SYN 结束 连接
client_establish_other_rst 建连-客户端其他重置 连接
server_syn_ack_repeat 建连-服务端 SYN 结束 连接
server_reset 建连-服务端直接重置 连接
server_establish_other_rst 建连-服务端其他重置 连接
client_rst_flow 传输-客户端重置 连接
server_rst_flow 传输-服务端重置 连接
server_queue_lack 传输-服务端队列溢出 连接
tcp_timeout 传输-TCP 连接超时 连接
client_half_close_flow 断连-客户端半关 连接
server_half_close_flow 断连-服务端半关 连接
rtt 平均 TCP 建连时延 微秒
rtt_client 平均 TCP 建连客户端时延 微秒
rtt_server 平均 TCP 建连服务端时延 微秒
srt 平均 TCP/ICMP 系统时延 微秒
art 平均数据时延 微秒
cit 平均客户端等待时延 微秒
rtt_max 最大 TCP 建连时延 微秒
rtt_client_max 最大 TCP 建连客户端时延 微秒
rtt_server_max 最大 TCP 建连服务端时延 微秒
srt_max 最大 TCP/ICMP 系统时延 微秒
art_max 最大数据时延 微秒
cit_max 最大客户端等待时延 微秒
l7_request 应用请求
l7_response 应用响应
rrt 平均应用时延 微秒
rrt_max 最大应用时延 微秒
l7_error 应用异常
l7_client_error 应用客户端异常
l7_server_error 应用服务端异常
l7_timeout 应用超时
l7_error_ratio 应用异常比例 %
l7_client_error_ratio 应用客户端异常比例 %
l7_server_error_ratio 应用服务端异常比例 %
row 行数

generate from csv file: vtap_flow_edge_port.ch

# 2.3 Grafana Dashboard

基于上述数据可通过 Grafana 构建丰富的 Dashboard。我们在 Grafana 中预置了一个 Network - K8s Pod Map Dashboard,效果图如下:

Network K8s Pod Map

Network K8s Pod Map

你也可以访问 DeepFlow Online Demo (opens new window) 查看效果。