应用协议列表

# 1. 支持的应用协议

Value DisplayName Description
0 N/A
20 HTTP
21 HTTP2
40 Dubbo
41 gRPC
43 SOFARPC
44 FastCGI
45 bRPC
60 MySQL
61 PostgreSQL
62 Oracle
80 Redis
81 MongoDB
100 Kafka
101 MQTT
102 AMQP RabbitMQ
103 OpenWire ActiveMQ
104 NATS
105 Pulsar
106 ZMTP ZeroMQ
120 DNS
121 TLS
127 Custom

generate from csv file: l7_protocol

# 2. 调用日志字段说明

调用日志(flow_log.l7_flow_log)数据表存储按分钟粒度聚合的各种协议的请求日志,由 Tag 和 Metrics 两大类字段组成。

# 2.1 标签

Tag 字段:字段主要用于分组,过滤,详细字段描述如下。

Name DisplayName Description
_id UID
time 时间 将 end_time 取整到秒。
region 区域
az 可用区
host 宿主机 承载虚拟机的宿主机。
chost 云服务器 包括虚拟机、裸金属服务器。
vpc VPC
l2_vpc 转发 VPC MAC 地址所在的 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 采集网卡所属宿主机 已废弃,请使用 capture_nic_host。
tap_port_chost 采集网卡所属云服务器 已废弃,请使用 capture_nic_chost。
tap_port_pod_node 采集网卡所属容器节点 已废弃,请使用 capture_nic_pod_node。
capture_nic_host 采集网卡所属宿主机
capture_nic_chost 采集网卡所属云服务器
capture_nic_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 自定义 Label。
k8s.annotation K8s Annotation
k8s.env K8s Env
attribute Attribute OpenTelemetry Span 属性,以及应用协议特有属性。
cloud.tag Cloud Tag
os.app OS APP
ip IP 地址
is_ipv4 IPv4 标志
is_internet Internet IP 标志 Internet IP 无法关联到实例或子网 CIDR 的 IP。
protocol 网络协议
tunnel_type 隧道类型
client_port 客户端口
server_port 服务端口
tcp_seq TCP Seq 号
req_tcp_seq 请求 TCP Seq 号
resp_tcp_seq 响应 TCP Seq 号
l7_protocol 应用协议
l7_protocol_str 应用协议 字符串形式。
is_tls TLS
version 协议版本
type 日志类型
request_type 请求类型
request_domain 请求域名
request_resource 请求资源
request_id 请求 ID
response_status 响应状态
response_code 响应码
response_exception 响应异常
response_result 响应结果
events 事件
app_service 应用服务
app_instance 应用实例
endpoint 端点
process_id 进程 ID
process_kname 内核线程名
trace_id TraceID
span_id SpanID
parent_span_id ParentSpanID
span_kind Span 类型 取自 OpenTelemetry。
x_request_id X-Request-ID
x_request_id_0 请求 X-Request-ID
x_request_id_1 响应 X-Request-ID
http_proxy_client HTTP 代理客户端 代理转换之前的真实客户端 IP。
syscall_trace_id Syscall TraceID
syscall_trace_id_request 请求 Syscall TraceID
syscall_trace_id_response 响应 Syscall TraceID
syscall_thread Syscall 线程
syscall_thread_0 请求 Syscall 线程
syscall_thread_1 响应 Syscall 线程
syscall_coroutine Syscall 协程
syscall_coroutine_0 请求 Syscall 协程
syscall_coroutine_1 响应 Syscall 协程
syscall_cap_seq Syscall 序号
syscall_cap_seq_0 请求 Syscall 序号
syscall_cap_seq_1 响应 Syscall 序号
flow_id 流日志 ID
start_time 开始时间 单位: 微秒。表示当前请求开始的时间。
end_time 结束时间 单位: 微秒。表示当前响应开始的时间,但对 OTel 是响应结束时间。
signal_source 信号源
tap 采集点 已废弃,请使用 capture_network_type。
capture_network_type 网络位置 采集流量的网络位置,使用固定值(云网络)表示云内流量,其他值表示传统 IDC 流量(支持最多 254 个自定义值表示镜像分光的位置)。
vtap 采集器 已废弃,请使用 agent。
agent 采集器
nat_source NAT 源
tap_port 采集位置标识 已废弃,请使用 capture_nic。
tap_port_name 采集位置名称 已废弃,请使用 capture_nic_name。
tap_port_type 采集位置类型 已废弃,请使用 capture_nic_type。
capture_nic 采集网卡标识 当采集位置类型为本地网卡时,此值表示采集网卡的 MAC 地址后缀(后四字节)。
capture_nic_name 采集网卡名称 当采集位置类型为本地网卡时,此值表示采集网卡的名称。
capture_nic_type 采集网卡类型 表示流量采集位置的类型,包括 OTel(应用 Span)、eBPF(Socket Data)、本地网卡(云内流量)、云网关网卡(云网关流量)、分光镜像(传统 IDC 流量)等。
tap_side 路径统计位置 已废弃,请使用 observation_point。
observation_point 观测点 采集位置在流量路径中所处的逻辑位置,例如客户端应用、客户端进程、客户端网卡、客户端容器节点、服务端容器节点、服务端网卡、服务端进程、服务端应用等。
biz_type 业务类型

generate from csv file: l7_flow_log.ch

# 2.2 指标

Metrics 字段:字段主要用于计算,详细字段描述如下。

Field DisplayName Unit Description
request 请求
response 响应
session_length 会话长度 字节 请求长度 + 响应长度。
request_length 请求长度 字节
response_length 响应长度 字节
sql_affected_rows SQL 影响行数
direction_score 方向得分 得分越高时客户端、服务端方向的准确性越高,得分为 255 时方向一定是正确的。
log_count 日志总量
error 异常 客户端异常 + 服务端异常。
client_error 客户端异常
server_error 服务端异常
error_ratio 异常比例 % 异常 / 响应。
client_error_ratio 客户端异常比例 % 客户端异常 / 响应。
server_error_ratio 服务端异常比例 % 服务端异常 / 响应。
response_duration 响应时延 微秒 日志类型为会话时,响应时延 = 结束时间 - 开始时间。
row 行数

generate from csv file: l7_flow_log.ch

# 3. 各应用协议的字段映射

# 3.1 HTTP 协议簇

# 3.1.1 HTTP

通过解析 HTTP 协议,将 HTTP Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 首行的 Version -- --
request_type 请求类型 首行的 Method -- --
request_domain 请求域名 Host -- --
request_resource 请求资源 Path -- --
request_id 请求 ID -- -- --
endpoint 端点 Path -- Agent 的 http-endpoint-extraction 配置项可定义提取规则
Resp. response_code 响应码 -- Status Code --
response_status 响应状态 -- Status Code 正常: 1XX/2XX/3XX; 客户端异常: 4XX; 服务端异常: 5XX
response_exception 响应异常 -- Status Code Status Code 的描述,参考 List of HTTP status codes (opens new window)
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 [1] traceparent, sw8 Agent 的 http_log_trace_id 配置项可定义提取的 Header 名称
span_id SpanID traceparent, sw8 [2] traceparent, sw8 Agent 的 http_log_span_id 配置项可定义提取的 Header 名称
x_request_id X-Request-ID X-Request-ID X-Request-ID Agent 的 http_log_x_request_id 配置项可定义提取的 Header 名称
http_proxy_client HTTP 代理客户端 X-Forwarded-For -- Agent 的 http_log_proxy_client 配置项可定义提取的 Header 名称
Misc. attribute.x -- x x 支持采集自定义头部字段 [3]
  • [1] TraceID 只截取以下 HTTP Header 的部分值,其他自定义 Header 读取全部值:
    • traceparent Header 中的 trace-id 部分
    • sw8/sw6 Header 中的 trace ID 部分
    • uber-trace-id Header 中的 {trace-id} 部分
  • [2] SpanID 只截取以下 HTTP Header 的部分值,其他自定义 Header 读取全部值:
    • traceparent Header 中的 parent-id 部分
    • sw8/sw6 Header 中的 segment ID-span ID 部分
    • uber-trace-id Header 中的 {span-id} 部分
  • [3] 可通过采集器配置中的 static_config.l7-protocol-advanced-features.extra-log-fields 定义需要额外采集的协议头字段,例如在配置中添加 User-Agent、Cookie 时调用日志中可查看到 attribute.user_agent 和 attribute.cookie 字段。

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Header Response Header 描述
request 请求 -- -- Request 个数
response 响应 -- -- Response 个数
session_length 会话长度 -- -- 请求长度 + 响应长度
request_length 请求长度 Content-Length -- --
request_length 响应长度 -- Content-Length --
log_count 日志总量 -- -- Request Log 行数
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- Status Code 参考 Tag 字段response_code的说明
server_error 服务端异常 -- Status Code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.1.2 HTTP2

通过解析 HTTP2 协议,将 HTTP2 Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 Version -- --
request_type 请求类型 Method -- --
request_domain 请求域名 Host 或 Authority -- --
request_resource 请求资源 Path -- --
request_id 请求 ID Stream ID Stream ID --
endpoint 端点 Path -- --
Resp. response_code 响应码 -- Status Code --
response_status 响应状态 -- Status Code 正常: 1XX/2XX/3XX; 客户端异常: 4XX; 服务端异常: 5XX
response_exception 响应异常 -- Status Code Status Code 的描述,参考 List of HTTP status codes (opens new window)
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 Agent 的 http_log_trace_id 配置项可定义提取的 Header 名称
span_id SpanID traceparent, sw8 traceparent, sw8 Agent 的 http_log_span_id 配置项可定义提取的 Header 名称
x_request_id X-Request-ID X-Request-ID X-Request-ID Agent 的 http_log_x_request_id 配置项可定义提取的 Header 名称
http_proxy_client HTTP 代理客户端 X-Forwarded-For -- Agent 的 http_log_proxy_client 配置项可定义提取的 Header 名称
Misc. attribute.x -- x x 支持采集自定义头部字段 [1]
  • [1] 可通过采集器配置中的 static_config.l7-protocol-advanced-features.extra-log-fields 定义需要额外采集的协议头字段,例如在配置中添加 User-Agent、Cookie 时调用日志中可查看到 attribute.user_agent 和 attribute.cookie 字段。

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 HTTP2 Request Header HTTP2 Response Header 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
session_length 会话长度 -- -- 请求长度 + 响应长度
request_length 请求长度 Content-Length -- --
request_length 响应长度 -- Content-Length --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- Status Code 参考 Tag 字段response_code的说明
server_error 服务端异常 -- Status Code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.2 RPC 协议簇

# 3.2.1 Dubbo

支持 Hessian2 和 Kryo 两种序列化算法, 通过解析 Dubbo (opens new window) 协议,将 Dubbo Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 version -- --
request_type 请求类型 Method-Name -- --
request_domain 请求域名 -- -- --
request_resource 请求资源 Service-Name -- --
request_id 请求 ID Request-ID Request-ID --
endpoint 端点 Service-Name/Method-Name -- --
Resp. response_code 响应码 -- Status --
response_status 响应状态 -- Status 正常: 20; 客户端异常: 30/40/90; 服务端异常: 31/50/60/70/80/100
response_exception 响应异常 -- Status Status 的描述,参考 Dubbo 协议详解 (opens new window)
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 Agent 的 http_log_trace_id 配置项可定义提取的 Header 名称
span_id SpanID traceparent, sw8 traceparent, sw8 Agent 的 http_log_span_id 配置项可定义提取的 Header 名称
x_request_id X-Request-ID -- -- --
Misc. attribute.rpc_service -- Service-Name -- --

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- -- Response 个数
session_length 会话长度 -- -- 请求长度 + 响应长度
request_length 请求长度 Data length -- --
response_length 响应长度 -- Data length --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- Status 参考 Tag 字段response_code的说明
server_error 服务端异常 -- Status 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.2.2 gRPC

通过解析 gRPC 协议,将 gRPC Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 Version -- --
request_type 请求类型 Method -- --
request_domain 请求域名 Host 或 Authority -- --
request_resource 请求资源 Service-Name -- --
request_id 请求 ID Stream ID Stream ID --
endpoint 端点 Path -- --
Resp. response_code 响应码 -- Status Code --
response_status 响应状态 -- Status Code 正常: 1XX/2XX/3XX; 客户端异常: 4XX; 服务端异常: 5XX
response_exception 响应异常 -- Status Code Status Code 的描述,参考 List of HTTP status codes (opens new window)
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 Agent 的 http_log_trace_id 配置项可定义提取的 Header 名称
span_id SpanID traceparent, sw8 traceparent, sw8 Agent 的 http_log_span_id 配置项可定义提取的 Header 名称
x_request_id X-Request-ID X-Request-ID X-Request-ID Agent 的 http_log_x_request_id 配置项可定义提取的 Header 名称
http_proxy_client HTTP 代理客户端 X-Forwarded-For -- Agent 的 http_log_proxy_client 配置项可定义提取的 Header 名称
Misc. attribute.rpc_service -- Service-Name -- --
Misc. attribute.x -- x x 支持采集自定义头部字段 [1]
  • [1] 可通过采集器配置中的 static_config.l7-protocol-advanced-features.extra-log-fields 定义需要额外采集的协议头字段,例如在配置中添加 User-Agent、Cookie 时调用日志中可查看到 attribute.user_agent 和 attribute.cookie 字段。

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 HTTP2 Request Header HTTP2 Response Header 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
session_length 会话长度 -- -- 请求长度 + 响应长度
request_length 请求长度 Content-Length -- --
request_length 响应长度 -- Content-Length --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- Status Code 参考 Tag 字段response_code的说明
server_error 服务端异常 -- Status Code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.2.3 SOFARPC

通过解析 SOFARPC (opens new window) 协议,将 SOFARPC Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 method_name 等 [1] -- --
request_domain 请求域名 -- -- --
request_resource 请求资源 target_service 等 [2] -- --
request_id 请求 ID req_id req_id --
endpoint 端点 $request_type/$request_resource -- --
Resp. response_code 响应码 -- resp_code --
response_status 响应状态 -- resp_code 正常: 0; 客户端异常: 8; 服务端异常: 其他
response_exception 响应异常 -- -- --
response_result 响应结果 -- -- --
Trace trace_id TraceID sofaTraceId 等 [3] -- --
span_id SpanID trace_context 等 [4] -- --
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --
  • [1] Request header 中的 sofa_head_method_name,或者 com.alipay.sofa.rpc.core.request.SofaRequest 类的 methodName 字段。
  • [2] Request header 中的 sofa_head_target_service,或者 com.alipay.sofa.rpc.core.request.SofaRequest 的 targetServiceUniqueName 字段。
  • [3] Request header 中的 rpc_trace_context.sofaTraceId,或者 new_rpc_trace_context,或者 com.alipay.sofa.rpc.core.request.SofaRequest 类的 sofaTraceId 字段。
  • [4] Request header 中的 new_rpc_trace_context 字段。

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- -- Response 个数
session_length 会话长度 -- -- --
request_length 请求长度 -- -- --
request_length 响应长度 -- -- --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- Status Code 参考 Tag 字段response_code的说明
server_error 服务端异常 -- Status Code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.2.4 FastCGI

通过解析 FastCGI (opens new window) 协议,将 FastCGI Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 PARAM 中的 REQUEST_METHOD -- --
request_domain 请求域名 PARAM 中的 HTTP_HOST -- --
request_resource 请求资源 PARAM 中的 REQUEST_URI -- --
request_id 请求 ID Request ID Request ID --
endpoint 端点 PARAM 中的 DOCUMENT_URI -- --
Resp. response_code 响应码 -- Status Code STDOUT 中的 Status,默认 200
response_status 响应状态 -- Status Code 正常: 1XX/2XX/3XX; 客户端异常: 4XX; 服务端异常: 5XX
response_exception 响应异常 -- -- --
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 Agent 的 http_log_trace_id 配置项可定义提取的 Header 名称
span_id SpanID traceparent, sw8 traceparent, sw8 Agent 的 http_log_span_id 配置项可定义提取的 Header 名称
x_request_id X-Request-ID X-Request-ID X-Request-ID Agent 的 http_log_x_request_id 配置项可定义提取的 Header 名称
Misc. -- -- -- -- --

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- -- Response 个数
session_length 会话长度 -- -- --
request_length 请求长度 -- -- --
request_length 响应长度 -- -- --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- Status Code 参考 Tag 字段response_code的说明
server_error 服务端异常 -- Status Code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.2.5 bRPC

通过解析 bRPC (opens new window) 协议,将 bRPC Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 request.method_name -- --
request_domain 请求域名 -- -- --
request_resource 请求资源 request.service_name -- --
request_id 请求 ID correlation_id -- correlation_id 64 位整型的高 32 位
endpoint 端点 service_name/method_name -- --
Resp. response_code 响应码 -- Status Code --
response_status 响应状态 -- response.error_code --
response_exception 响应异常 -- response.error_text --
response_result 响应结果 -- -- --
Trace trace_id TraceID -- -- --
span_id SpanID -- -- --
x_request_id X-Request-ID request.log_id -- --
Misc. -- -- -- -- --

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- -- Response 个数
session_length 会话长度 -- -- --
request_length 请求长度 -- -- --
response_length 响应长度 -- -- --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- -- 参考 Tag 字段response_code的说明
server_error 服务端异常 -- -- 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.3 SQL 协议簇

# 3.3.1 MySQL

通过解析 MySQL (opens new window) 协议,将 MySQL Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 Command -- 支持解析的命令详见 [1]
request_domain 请求域名 -- -- --
request_resource 请求资源 Statement -- --
request_id 请求 ID Statement ID Statement ID COM_STMT_PREPARE 响应、COM_STMT_EXECUTE 请求中提取
endpoint 端点 -- -- --
Resp. response_code 响应码 -- Error Code --
response_status 响应状态 -- Error Code 正常: 非 ERR 消息; 客户端异常/服务端异常详见 [2]
response_exception 响应异常 -- Error Message --
response_result 响应结果 -- -- --
Trace trace_id TraceID SQL Comments -- 注释中的 TraceID 支持提取,提取及配置方法详见 [3]
span_id SpanID SQL Comments -- 注释中的 TraceID 支持提取,提取及配置方法详见 [3]
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --
  • [1] 目前支持解析的命令:COM_QUERYCOM_QUITCOM_INIT_DBCOM_FIELD_LISTCOM_STMT_PREPARECOM_STMT_EXECUTECOM_STMT_FETCHCOM_STMT_CLOSE
  • [2] 客户端异常:Error Code=2000-2999,或客户端发送 1-999;服务端异常:Error Code=1000-1999/3000-4000,或服务端发送 1-999。
  • [3] 当应用在 SQL 语句的注释中注入 TraceID(或复合的 TraceID + SpanID)时,DeepFlow 支持提取并用于跨线程的分布式追踪。DeepFlow 支持提取几乎任意位置的 SQL 注释(但必须出现在 AF_PACKET 获取到的首包中,或者 eBPF 获取到的第一个 Socket Data 中):
    /* your_trace_key: 648840f6-7f92-468b-b298-d38f05c541d4 */ SELECT col FROM tbl
    SELECT /* your_trace_key: 648840f6-7f92-468b-b298-d38f05c541d4 */ col FROM tbl
    SELECT col FROM tbl # your_trace_key: 648840f6-7f92-468b-b298-d38f05c541d4
    SELECT col FROM tbl -- your_trace_key: 648840f6-7f92-468b-b298-d38f05c541d4
    
    1
    2
    3
    4
    虽然如此,我们强烈建议您在 SQL 语句头部添加注释,以降低 SQL 解析的性能开销。上面的示例中,your_trace_key 取决于 Agent 配置项中 http_log_trace_id 的值(但请注意如果使用 traceparent / sw8 / uber-trace-id,请遵循 OpenTelemetry (opens new window) / SkyWalking (opens new window) / Jaeger (opens new window) 的协议规范)。例如当 http_log_trace_id = traceparent, sw8 时,DeepFlow 能够从 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01 中提取符合 OpenTelemetry 规范的 TraceID 和 SpanID:
    /* traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01 */ SELECT col FROM tbl
    
    1

注意,以下为单向消息,会被直接保存为 type=session 的调用日志:

  • COM_STMT_CLOSE
  • COM_QUIT

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- -- Response 个数
sql_affected_rows SQL影响行数 -- OK 报文的 Affected Rows --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- ERROR CODE 参考 Tag 字段response_code的说明
server_error 服务端异常 -- ERROR CODE 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.3.2 PostgreSQL

通过解析 PostgreSQL (opens new window) 协议,将 PostgreSQL Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 char tag -- regular 消息
request_domain 请求域名 -- -- --
request_resource 请求资源 payload -- regular 消息
request_id 请求 ID -- -- --
endpoint 端点 -- -- --
Resp. response_code 响应码 -- -- --
response_status 响应状态 -- Error Code 正常: 非 error return 消息; 客户端异常/服务端异常详见 [1]
response_exception 响应异常 -- Error Code Error Code 的英文描述 (opens new window)
response_result 响应结果 -- Error Code error return 消息
Trace trace_id TraceID -- -- --
span_id SpanID -- -- --
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --
  • [1] 错误码分类
    • 客户端异常:Error Code=03/0A/0B/0F/0L/0P/20/22/23/26/2F/34/3D/3F/42
    • 服务端异常:Error Code=08/09/0Z/21/24/25/27/28/2B/2D/38/39/3B/40/44/53/54/55/57/5/72/F0/HV/P0/XX

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
sql_affected_rows SQL影响行数 -- command complete 报文的 Affected Rows --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- Error Code 参考 Tag 字段response_code的说明
server_error 服务端异常 -- Error Code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.4 NoSQL 协议簇

# 3.4.1 Redis

通过解析 Redis (opens new window) 协议,将 Redis Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 Payload 首个单词 -- --
request_domain 请求域名 -- -- --
request_resource 请求资源 Payload 余下字符 -- --
request_id 请求 ID -- -- --
endpoint 端点 -- -- --
Resp. response_code 响应码 -- -- --
response_status 响应状态 -- ERR 消息 正常: 无 ERR 消息; 服务端异常: ERR 消息
response_exception 响应异常 -- ERR 消息 Payload --
response_result 响应结果 -- -- --
Trace trace_id TraceID -- -- --
span_id SpanID -- -- --
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
sql_affected_rows SQL影响行数 -- command complete 报文的 Affected Rows --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- -- --
server_error 服务端异常 -- ERR报文 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.4.2 MongoDB

通过解析 MongoDB (opens new window) 协议,将 MongoDB Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 OpCode -- --
request_domain 请求域名 -- -- --
request_resource 请求资源 BodyDocument -- --
request_id 请求 ID -- -- --
endpoint 端点 -- -- --
Resp. response_code 响应码 -- BodyDocument 的 Code --
response_status 响应状态 -- BodyDocument 的 Code 根据 Code 判断
response_exception 响应异常 -- BodyDocument 的 errmsg --
response_result 响应结果 -- -- --
Trace trace_id TraceID -- -- --
span_id SpanID -- -- --
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- -- --
server_error 服务端异常 -- ERR报文 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.5 消息队列协议簇

# 3.5.1 Kafka

通过解析 Kafka (opens new window) 协议,将 Kafka Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 request_api_key -- --
request_domain 请求域名 -- -- --
request_resource 请求资源 topic_name -- 仅 Fetch 和 Produce 消息
request_id 请求 ID correlation_id correlation_id --
endpoint 端点 topic_name -- 仅 Fetch 和 Produce 消息
Resp. response_code 响应码 -- error_code 仅 Fetch 消息获取了响应码
response_status 响应状态 -- error_code 正常: error_code=0; 服务端异常: error_code!=0
response_exception 响应异常 -- error_code error_code 的英文描述 (opens new window)
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 从首个 Record 的对应 Header 字段中提取
span_id SpanID traceparent, sw8 traceparent, sw8 从首个 Record 的对应 Header 字段中提取
x_request_id X-Request-ID correlation_id correlation_id 参考:使用 CorrelationID 关联 Req-Resp 通信场景 (opens new window)
Misc. -- -- -- -- --

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
session_length 会话长度 -- -- 请求长度 + 响应长度
request_length 请求长度 message_size -- --
request_length 响应长度 -- message_size --
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- error_code 参考 Tag 字段响应状态的说明
server_error 服务端异常 -- error_code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.5.2 MQTT

通过解析 MQTT (opens new window) 协议,将 MQTT Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 PacketKind -- --
request_domain 请求域名 client_id -- --
request_resource 请求资源 topic -- --
request_id 请求 ID -- -- --
endpoint 端点 topic -- --
Resp. response_code 响应码 -- code connect_ack 消息获取了 code
response_status 响应状态 -- code 正常: code=0; 客户端异常: code=1/2/4/5; 服务端异常: code=3
response_exception 响应异常 -- -- --
response_result 响应结果 -- -- --
Trace trace_id TraceID -- -- --
span_id SpanID -- -- --
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- connect_ack 报文返回的 code 参考 Tag 字段响应状态的说明
server_error 服务端异常 -- connect_ack 报文返回的 code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.5.3 AMQP

通过解析 AMQP (opens new window) 协议(即 RabbitMQ (opens new window) 的主要协议) 协议,将 AMQP Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 version -- 0-9-1
request_type 请求类型 class_id.method_id -- 例如: Channel.OpenOK
request_domain 请求域名 vhost -- --
request_resource 请求资源 exchange.routing_key 或 queue -- --
request_id 请求 ID -- -- --
endpoint 端点 exchange.routing_key 或 queue -- --
Resp. response_code 响应码 -- method_id OpenOK
response_status 响应状态 -- -- 均视为正常
response_exception 响应异常 -- -- --
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 Content Header 中的自定义字段
span_id SpanID traceparent, sw8 traceparent, sw8 Content Header 中的自定义字段
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --

注意:受限于协议特征,目前仅支持识别在 agent 启动后建立连接的 AMQP 协议。

另外,以下为单向消息,会被直接保存为 type=session 的调用日志:

  • Connection.Blocked (s->c)
  • Connection.Unblocked (s->c)
  • Basic.Return (s->c)
  • Basic.Ack (both)
  • Basic.Nack (both)
  • Basic.Reject (c->s)
  • Basic.RecoverAsync (c->s)
  • Content-Header (both)
  • Content-Body (both)
  • Protocol-Header (c->s) 而如下消息可能有、也可能没有 ACK,DeepFlow 统一忽略他们的响应(因为 ACK 中没有关键信息,由于不会稳定 ACK 也无需计算时延):
  • Basic.Publish (c->s)
  • Basic.Deliver (s->c)

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- -- Response 个数
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- -- --
server_error 服务端异常 -- -- --
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.5.4 OpenWire

通过解析 OpenWire (opens new window)(即 ActiveMQ (opens new window) 的默认协议) 协议,将 OpenWire Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 version -- --
request_type 请求类型 OpenWireCommand -- --
request_domain 请求域名 broker_url -- --
request_resource 请求资源 topic -- --
request_id 请求 ID command_id correlation_id [1] 请求与响应的对应关系详见 [2]
endpoint 端点 topic -- --
Resp. response_code 响应码 -- -- --
response_status 响应状态 -- -- 正常: 无 error message; 服务端异常: 有 error message
response_exception 响应异常 -- error message --
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 --
span_id SpanID traceparent, sw8 traceparent, sw8 --
x_request_id X-Request-ID correlation_id correlation_id 参考:ActiveMQ 中的 CorrelationID (opens new window)
Misc. -- -- -- -- --
  • [1] 注意与下方 x_request_id 对应的 correlation_id 字段区分,为两个不同的字段
  • [2] 当 request 的 response_required 为 true 时,对应 response 的 correlation_id 字段与 request 的 command_id 应当一致

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- -- --
server_error 服务端异常 -- -- --
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.5.5 NATS

通过解析 NATS (opens new window) 协议,将 NATS Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 version -- 使用 INFO 中的 version
request_type 请求类型 NatsMessage -- 如 INFO, SUB, PUB, MSG
request_domain 请求域名 server_name -- 使用 INFO 中的 server_name
request_resource 请求资源 subject -- --
request_id 请求 ID -- -- --
endpoint 端点 subject -- 仅 subject 第一个 . 之前的部分
Resp. response_code 响应码 -- -- --
response_status 响应状态 -- -- 均视为正常
response_exception 响应异常 -- -- --
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 在 HMSG, HPUB 中的 NATS headers 提取
span_id SpanID traceparent, sw8 traceparent, sw8 在 HMSG, HPUB 中的 NATS headers 提取
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --

注意,除了 Info/Connect、Ping/Pong 这两组消息以外,其他消息均为单向消息,会被直接保存为 type=session 的调用日志:

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- -- --
server_error 服务端异常 -- -- --
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.5.6 Pulsar

通过解析 Pulsar (opens new window) 协议,将 Pulsar Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 protocol_version -- 取 CommandConnect 和 CommandConnected 中的小者
request_type 请求类型 command -- --
request_domain 请求域名 proxy_to_broker_url -- 在 CommandConnect 中
request_resource 请求资源 topic -- 取协议 topic 最后一个 / 之后的内容
request_id 请求 ID request_id -- 对于 Send/SendError/SendReceipt,由于命令无 request_id,另取 producer_id 和 sequence_id 的低 16 位拼接作为请求 ID
endpoint 端点 topic -- --
Resp. response_code 响应码 -- code --
response_status 响应状态 -- status --
response_exception 响应异常 -- exception --
response_result 响应结果 -- -- --
Trace trace_id TraceID traceparent, sw8 traceparent, sw8 在 HMSG, HPUB 中的 NATS headers 提取
span_id SpanID traceparent, sw8 traceparent, sw8 在 HMSG, HPUB 中的 NATS headers 提取
x_request_id X-Request-ID x_request_id x_request_id --
Misc. -- -- -- -- --

注意,以下为单向消息,会被直接保存为 type=session 的调用日志:

  • Ack
  • Flow
  • Message
  • RedeliverUnacknowledgedMessages
  • ReachedEndOfTopic
  • ActiveConsumerChange
  • AckResponse
  • WatchTopicList
  • WatchTopicListSuccess
  • WatchTopicUpdate
  • WatchTopicListClose
  • TopicMigrated

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- -- --
server_error 服务端异常 -- -- --
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.5.7 ZMTP

通过解析 ZMTP (opens new window) 协议(即 ZeroMQ 使用的消息传输协议),将 ZMTP Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 version -- --
request_type 请求类型 frame_type -- --
request_domain 请求域名 subscription -- 仅当 socket 类型为 PUB/SUB/XPUB/XSUB
request_resource 请求资源 subscription -- 仅当 socket 类型为 PUB/SUB/XPUB/XSUB
Resp. response_code 响应码 -- -- --
response_status 响应状态 -- -- 正常: 无 error message; 异常: 有 error message
response_exception 响应异常 -- error message --
Misc. -- -- -- -- --
  • ZMTP 协议中,仅当一端 socket 为 REQ/REP 时,请求消息必须等待上一次请求得到响应后才能发起,请求与响应将聚合为一个会话
  • 其余类型目前仅识别为单向消息,会被直接保存为 type=session 的调用日志

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- Response 个数
log_count 日志总量 -- -- --
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- -- --
server_error 服务端异常 -- -- --
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.6 网络协议簇

# 3.6.1 DNS

通过解析 DNS (opens new window) 协议,将 DNS Request / Response 的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

类别 名称 中文 Request Header Response Header 描述
Req. version 协议版本 -- -- --
request_type 请求类型 QTYPE -- --
request_domain 请求域名 QNAME -- 仅在查询 IPv4 或 IPv6 地址时有值
request_resource 请求资源 QNAME -- --
request_id 请求 ID ID ID --
endpoint 端点 QNAME -- --
Resp. response_code 响应码 -- RCODE --
response_status 响应状态 -- RCODE 正常: RCODE=0x0; 客户端异常: RCODE=0x1/0x3; 服务端异常: 其他
response_exception 响应异常 -- RCODE RCODE 的描述,参考 RFC 2929 Section 2.3 (opens new window)
response_result 响应结果 -- RDATA --
Trace trace_id TraceID -- -- --
span_id SpanID -- -- --
x_request_id X-Request-ID -- -- --
Misc. -- -- -- -- --

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 Request Response 描述
request 请求 -- -- Request 个数
response 响应 -- -- Response 个数
log_count 日志总量 -- -- Request Log 行数
error 异常 -- -- 客户端异常 + 服务端异常
client_error 客户端异常 -- RCODE 参考 Tag 字段response_code的说明
server_error 服务端异常 -- RCODE 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- -- 异常 / 响应
client_error_ratio 客户端异常比例 -- -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- -- 服务端异常 / 响应

# 3.7 OpenTelemetry 数据集成

通过解析 OpenTelemetry 协议,将 OpenTelemetry 协议的数据结构的字段映射到 l7_flow_log 对应字段中,映射关系如下表:

Tag 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 OpenTelemetry 数据结构 描述
start_time 开始时间 span.start_time_unix_nano --
end_time 结束时间 span.end_time_unix_nano --
protocol 网络协议 span.attribute.net.transport 映射到对应的枚举值
attributes Misc.butes resource./span.attributes --
ip IP 地址 span.attribute.app.host.ip/attribute.net.peer.ip 详细说明见后面段落
l7_protocol 应用协议 span.attribute.http.scheme/db.system/rpc.system/messaging.system/messaging.protocol 映射到对应的枚举值
l7_protocol_str 应用协议 span.attribute.http.scheme/db.system/rpc.system/messaging.system/messaging.protocol --
version 协议版本 span.attribute.http.flavor --
type 日志类型 会话 --
request_type 请求类型 span.attribute.http.method/db.operation/rpc.method --
request_domain 请求域名 span.attribute.http.host/db.connection_string --
request_resource 请求资源 attribute.http.target/db.statement/messaging.url/rpc.service --
request_id 请求 ID
response_status 响应状态 响应码=span.attribute.http.status_code 参考 HTTP 协议定义; 响应码=span.status.code,未知: STATUS_CODE_UNSET; 正常: STATUS_CODE_OK; 服务端异常: STATUS_CODE_ERROR --
response_code 响应码 span.attribute.http.status_code/span.status.code 优先使用 span.attribute.http.status_code
response_exception 响应异常 响应码=span.attribute.http.status_code 参考 HTTP 协议定义; 响应码=span.status.code,则对应 span.status.message --
service_name 服务名称 resource./span.attribute.service.name --
service_instance_id 服务实例 resource./span.attribute.service.instance.id --
endpoint 端点 span.name --
trace_id TraceID span.trace_id/attribute.sw8.trace_id 优先使用 attribute.sw8.trace_id
span_id SpanID span.span_id/attribute.sw8.segment_id-attribute.sw8.span_id 优先使用 attribute.sw8.segment_id-attribute.sw8.span_id
parent_span_id ParentSpanID span.parent_span_id/attribute.sw8.segment_id-attribute.sw8.parent_span_id 优先使用attribute.sw8.segment_id-attribute.sw8.parent_span_id
span_kind Span 类型 span.span_kind --
observation_point 观测点 span.spankind.SPAN_KIND_CLIENT/SPAN_KIND_PRODUCER:客户端应用(c-app);span.spankind.SPAN_KIND_SERVER/SPAN_KIND_CONSUMER:服务端应用(s-app);span.spankind.SPAN_KIND_UNSPECIFIED/SPAN_KIND_INTERNAL:应用(app) --
  • observation_point = c-app
    • span.attribute.app.host.ip 对应 ip_0; 其余都对应 ip_1
      • 通过一个 k8s attributes processor 插件 (opens new window)获取当前应用 (otel-agent) 对应上一级(即 Span 的来源)的 IP 地址,例如:Span 为 POD 产生,则获取 POD 的 IP;Span 为部署在虚拟机上的进程产生,则获取虚拟机的 IP
    • span.attribute.net.peer.ip 对应 ip_1; 其余都对应 ip_0

Metrics 字段映射表格,以下表格只包含存在映射关系的字段

名称 中文 OpenTelemetry 数据结构 描述
request 请求 Span 个数 --
response 响应 Span 个数 --
session_length 会话长度 请求长度 + 响应长度
request_length 请求长度 span.attribute.http.request_content_length --
request_length 响应长度 span.attribute.http.response_content_length --
sql_affected_rows SQL影响行数 span.attribute.db.cassandra.page_size --
log_count 日志总量 Span 个数 Request Log 行数
error 异常 -- 客户端异常 + 服务端异常
client_error 客户端异常 span.attribute.http.status_code/span.status.code 参考 Tag 字段response_code的说明
server_error 服务端异常 span.attribute.http.status_code/span.status.code 参考 Tag 字段response_code的说明
error_ratio 异常比例 -- 异常 / 响应
client_error_ratio 客户端异常比例 -- 客户端异常 / 响应
server_error_ratio 服务端异常比例 -- 服务端异常 / 响应
message.uncompressed_size -- span.attribute.message.uncompressed_size --
messaging.message_payload_size_bytes -- span.attribute.messaging.message_payload_size_bytes --
messaging.message_payload_compressed_size_bytes -- span.attribute.messaging.message_payload_compressed_size_bytes --