SOFATracer 对标准的 JDBC 数据源进行埋点,输出 SQL 语句执行链路数据,默认日志输出为 JSON 数据格式。

DataSource 摘要日志(datasource-client-digest.log)

以 JSON 格式输出的数据,相应 key 的含义解释如下:

key 表达含义
time 日志打印时间
local.app 当前应用名
traceId TraceId
spanId SpanId
database.name 数据库名称
sql sql执行语句
result.code sql执行状态码
total.time sql语句执行总时间
connection.establish.span sql执行建连时间
db.execute.cost sql执行时间
database.type 数据库类型
database.endpoint 数据库url
current.thread.name 当前线程名
baggage 透传的 baggage 数据

样例:

  1. {"time":"2018-09-28 01:11:56.715","local.app":"SOFATracerDataSource","traceId":"1e1bcab91538068316462100111113","spanId":"0.1.2","database.name":"test","sql":"CREATE TABLE TEST(ID INT PRIMARY KEY%2C NAME VARCHAR(255));","result.code":"success","total.time":"228ms","connection.establish.span":"220ms","db.execute.cost":"3ms","database.type":"h2","database.endpoint":"jdbc:h2:~/test:-1","current.thread.name":"http-nio-8080-exec-1","baggage":""}

DataSource 统计日志(datasource-client-stat.log)

stat.key 即本段时间内的统计关键字集合,统一关键字集合唯一确定一组统计数据,包含local.app、database.name、和 sql 字段.







































key 表达含义
time 日志打印时间
stat.key local.app 当前应用名
database.name 数据库名称
sql sql执行语句
count 本段时间内sql执行次数
total.cost.milliseconds 本段时间内sql执行总耗时(ms)
success 请求结果:Y 表示成功;N 表示失败
load.test 压测标记:T 是压测;F 不是压测

样例:

  1. {"time":"2018-09-28 01:12:43.647","stat.key":{"local.app":"SOFATracerDataSource","database.name":"test", "sql":"CREATE TABLE TEST(ID INT PRIMARY KEY%2C NAME VARCHAR(255));"},"count":1,"total.cost.milliseconds":228,"success":"true","load.test":"F"}