首批通过分布式安全可靠测评,为关键业务系统打造
obproxy_digest.log
更新时间:2026-04-14 17:41:09
obproxy_digest.log 日志是 ODP 审计日志,记录执行时间大于参数 query_digest_time_threshold 阈值(默认 100ms)的请求和错误响应请求。
日志格式
obproxy_digest.log 日志的通用格式如下:
日志打印时间,逻辑租户名,TraceId,RpcId,逻辑库名,物理库信息(cluster:tenant:database),数据库类型(OB/RDS),逻辑表名,物理表名,SQL 命令,SQL 类型(CRUD),执行结果(success/failed),错误码(success 时为空),SQL,执行总耗时(us),ODP 处理时间,连接建立时间,OBServer 节点执行时间,当前线程名,无需关注字段
说明:
SQL 命令显示为 COM_QUERY、COM_STMT_PREPARE 等。执行总耗时包括内部 SQL 执行耗时。当前线程名显示 ODP 的内部线程 ID。无需关注字段中显示的均为内部使用相关的字段,您无需关注。
示例
此处使用 select sleep(3) from dual 模仿慢 SQL,执行后查看 obproxy_digest.log,可以看到 ODP 执行花费了 409us,OceanBase 数据库执行花了 3039883us。内容如下:
2022-07-11 14:32:51.758265,undefined,,,,obcluster:sys:test,OB_MYSQL,,,COM_QUERY,SELECT,success,,select sleep(3),3041116us,409us,0us,3039883us,Y0-7F4B1CEA13A0,,,,0,11.xxx.xxx.53:33041
# 日志通过逗号分隔,如果 SQL 中有逗号,会通过 %2C 替代,通过 tr ',' '\n' 替换结果如下
1,2022-07-11 14:32:51.758265 #日志打印时间
2,undefined # 逻辑租户名,无需关注
3, # TraceId,无需关注
4, # RpcId,无需关注
5, # 逻辑库名,无需关注
6,obcluster:sys:test # 物理库信息(cluster:tenant:database)
7,OB_MYSQL # 数据库类型
8, # 逻辑表名
9, # 物理表名
10,COM_QUERY # SQL 命令(COM_QUERY、COM_STMT_PREPARE 等)
11,SELECT # SQL 类型
12,success # 执行结果(success/failed)
13, # 错误码(success 时为空)
14,select sleep(3) # SQL 语句
15,3041116us # 执行总耗时(包括内部 SQL 执行耗时)
16,409us # ODP 处理时间
17,0us # 建立连接时间
18,3039883us # OBServer 节点执行时间
19,Y0-7F4B1CEA13A0 # ODP 内部日志 trace_id
20, # 无需关注,内部使用
21, # 无需关注,内部使用
22, # 无需关注,内部使用
23,0 # 无需关注,内部使用
24,11.xxx.xxx.53:33041 # 路由到的 OBServer 节点的地址信息
对于审计日志比较重要的是第 14 行记录了执行的 SQL,15 ~ 16 记录了详细的执行时间,如果数据库执行慢第 18 行的时间就会很长。
相关文档
query_digest_time_threshold 配置项的详细介绍可参见 query_digest_time_threshold。