日志说明

客户端日志

数据访问代理连接器 dbp-connetor 是一个标准的 JDBC 实现,为用户提供了丰富的客户端扩展功能,例如 traceId 透传、SQL 链路追踪、数据库加密解密等功能。结合 dbp-connector,即可在 logs/dbp-connector-digest.log 日志中,获取详细的 SQL 执行信息,包括 trace 信息等。

  • 日志格式
    日志输出时间应用名称,traceId,RpcId,SQL 语句,执行结果(success/failed),执行耗时(ms),连接建立时间,数据库执行时间,当前线程名
  • 日志示例
    2019-01-0318:12:33.541,xxx,0a0fe91c1514974353459100919649,0.1,select*from test,success,81ms,77ms,4ms,main

服务端日志

SQL 执行摘要日志

logs/tracelog/zdal-db-digest.log 是 SQL 执行摘要日志,是采样打印的。对于所有耗时大于 3ms 且执行失败的语句,会进行全量打印;而耗时小于 3ms 的语句,则会进行抽样打印。

  • 日志格式
    日志打印时间,DBP实例ID,TraceId,RpcId,数据源名称,逻辑库名称,表名,SQL 类型,SQL,执行结果(success/failed),执行耗时(ms),当前线程名,数据库类型,逻辑表名,链接建立时间,数据库执行时间
  • 日志示例
    2019-11-2216:40:15.112,Test,0a0fe93a1479804014974100121175,0.3,DataSourceName,LogDatabaseName,tableName,UPDATE,update user set pwd='1'where name='khotyn',success,8ms,main,mysql,logicTableName,1ms,0ms,mark=T&uid=a2&,mark=T&uid=a2&

SQL 执行统计日志

logs/tracelog/zdal-db-stat.log 是 SQL 执行统计日志,每分钟会针对不同库表 SQL 执行统计信息进行打印。

  • 日志格式
    日志打印时间,DBP实例ID,数据源名称,逻辑库名称,表名,数据库类型,本段时间内的请求数量,本段时间内的请求总耗时,结果信息(Y/N),全链路压测标志(T/F)
  • 日志示例
    2015-05-1120:03:30.487,Test,DataSourceName,LogDatabaseName,tableName,mysql,2,27,N,F

ODP 错误日志

logs/zdalproxy/common-error.log 是数据访问代理的错误日志,打印记录了详细的错误信息。

ODP 端到端的慢 SQL 日志

logs/zdalproxy/sql-digest.log 是数据访问代理端到端的慢 SQL 日志。对于 ODP 端到端的所有耗时大于 4ms 且执行失败的语句会进行全量打印;而小于 4ms 的日志,则会进行抽样打印。

  • 日志格式
    SQL 执行时间戳,traceId,rpcId,数据库名,数据表名,SQL 类型,SQL,是否是默认数据源,是否是事务,是否执行成功,错误码,整体执行时间us,入队时间us,队列等待时间us,SQL 解析时间us,获取连接时间us,执行时间us,数据回写时间us
  • 日志示例
    2019-01-2419:00:02,046,0afd0109151679160204065021743,0,cb_batch,SELECT,SELECT VERSION FROM spring_batch_JOB_EXECUTION WHERE JOB_EXECUTION_ID=29638,N,Y,Y,0,6830,18,17,14,1,6749,20

ODP 端到端的 SQL 统计日志

logs/zdalproxy/sql-stat.log 是数据访问代理端到端的 SQL 统计日志。

  • 日志格式
    日志打印时间,数据库名,SQL 类型,是否执行成功,执行次数,总整体执行时间us,总入队时间us,总队列等待时间us,总SQL 解析时间us,总获取连接时间,总执行时间us,总数据回写时间us
  • 日志示例
    2019-01-2410:28:22,888,user,SELECT,Y,24,80758,980,835,1969,122,62506,13117

ODP 服务端启动初始化日志

logs/zdalproxy/zdal-client.log 是数据访问代理服务端启动初始化日志,记录了整个初始化阶段的启动过程。

SQL 执行耗时监控日志

logs/zdalproxy/zdal/zdal-monitor.log 是 SQL 执行监控日志,用以打印异常 SQL 与慢 SQL。

数据库连接池日志

logs/zdalproxy/zdal/zdal-datasource.log 是物理数据源连接池统计日志,用以记录物理数据源下数据库连接池的变更。

日志示例

2019-06-2615:05:57,305-[[,,,]]tradecore.physics07[Min:2;Max:4;CanUse:4;Managed:2;Using:0;MaxUsed:0;CreateCount:2;DestroyCount:0]
2019-06-2615:05:57,306-[[,,,]]tradecore.physics08[Min:2;Max:4;CanUse:4;Managed:2;Using:0;MaxUsed:0;CreateCount:2;DestroyCount:0]
2019-06-2615:05:57,306-[[,,,]]tradecore.physics01[Min:2;Max:4;CanUse:4;Managed:2;Using:0;MaxUsed:0;CreateCount:2;DestroyCount:0]
2019-06-2615:05:57,307-[[,,,]]tradecore.physics02[Min:2;Max:4;CanUse:4;Managed:2;Using:0;MaxUsed:2;CreateCount:2;DestroyCount:0]

日志中涉及的连接参数如下:

  • Min:连接池连接数最小值。
  • Max:连接池连接数最大值。
  • CanUse:可使用连接数。
  • Managed:当前创建了多少连接。
  • Using: 这个瞬间正在使用多少连接。
  • MaxUsed:获取连接数的最大并发数。一般是指最多使用过多少个连接数,不会超过 Max 连接数。
  • CreateCount:连接创建总次数。
  • DestroyCount:连接销毁总次数。

分库分表规则初始化日志

logs/zdalproxy/zdal/zdal-rule.log 是数据访问代理分库分表的初始化日志,记录了数据拆分规则的加载情况。