Proxy相关资料
Proxy日志文档
Proxy日志存储位置:/data/tdsql_run/端口/gateway/log/
proxy是tdsql的核心组件之一,主要提供了sql转写,sql分发,鉴权,结果聚合,结果过滤等功能。
常见的日志主要是inter_instance_xxx sql_instance_xxx slow_sql_instance_xxx() 等
1、Proxy日志内容介绍
a、接口日志interf_instance
接口日志主要存储了由客户端传输给服务器的原始信息,包括客户端,后端服务器等,日志格式以&和空格为分隔符。
[2021-08-12 15:55:58 386568] INFO topic=group_1623641961_38567&tid=57332&con=0x7ff118c3e000&
qid=4751805-1628054013-934461&splited=0&clientIP=10.129.213.233:14515&
proxyHost=10.129.213.17:15016&sql_size=166&sql_type=3&sub_sql_type=0&
sql=select name, sub_system_code, system_code from tsp_mutex where name%
3D'ksys_plrenw_health_check_mutex' and sub_system_code%3D'dept_bat'
and system_code%3D'dept' for update&db=core_acc&user=appuser&
10.129.213.20:4007=2&backend=10.129.213.20:4007&autocommit=0&
new_connnum=0&conn_tc=0&select_result_sum=1&affect_num=0&
hold_conns=1&resultcode=0&mc_request=0&timecost=0
[2021-08-12 15:55:58 386568]  | 日志记录时间  | 
INFO  | 日志级别(INFO,WARING,ERROR)  | 
topic=group_1623641961_38567  | 对应的实例  | 
tid=57332  | 线程id  | 
con=0x7ff118c3e000  | 对应的是proxy处理过程中连接对象的地址,和tid一起用于定位用户连接生命周期内的所有操作  | 
qid=4751805-1628054013-934461  | proxy生成的事务id  | 
splited=0  | 0表示原始查询,1表示proxy改写后的查询  | 
clientIP=10.129.213.233:14515  | 客户端proxy的ip和端口  | 
proxyHost=10.129.213.17:15016  | 连接proxy的ip和端口  | 
sql_size=166  | 传输的sql长度  | 
sql_type=3  | 这个是用户在握手后发送的请求类型,常用的有3(COM_QUERY),22和23(对应PREPARE和EXECUTE)  | 
sub_sql_type=0  | 子查询类型,一般都是0(select)  | 
sql=select name, sub_system_code, system_code from tsp_mutex where name%3D'ksys_plrenw_health_check_mutex' and sub_system_code%3D'dept_bat' and system_code%3D'dept' for update  | 执行的sql语句  | 
db=core_acc  | 数据库名称  | 
user=appuser  | 数据库用户  | 
10.129.213.20:4007=2  | 数据库的ip和端口  | 
backend=10.129.213.20:4007  | 后端数据库的ip和端口  | 
autocommit=0  | 是否自动提交  | 
new_connnum=0  | 新建连接的数量  | 
conn_tc=0  | 新建连接的花费的时间  | 
select_result_sum=1  | 查询得到的结果集数量  | 
affect_num=0  | 操作影响的行数  | 
hold_conns=1  | 请求结束后,任然占用的连接数量。非事物请求,应该是0  | 
resultcode=0  | 错误码  | 
mc_request=0  | 是否开启全局一致性读  | 
timecost=0  | sql耗时  | 
b、日常SQL日志sql_instance
sql通过proxy层改写。分发到各个db节点执行,并取出数据。sql日志中记录了在set中具体执行的sql。
日志以空格为分隔符,以:为赋值符号
[2021-08-11 23:59:59 661067] DEBUG tid:64744 con:0x7f8595b23800
qid:8624534-1628419255-1298688 user:ksrcbadmin C:132.7.112.100:59585
G:132.7.100.3:42978 S:132.7.100.12:4009 timecost:0.979(ms) inj_id:1
sql:3,387 "/*2:8624534-1628419255-1298688*/select name, sub_system_code,
system_code from tsp_mutex where name='ksys_plrenw_health_check_mutex'
and sub_system_code='dept_bat' and system_code='dept' for update"
[2021-08-11 23:59:59 661067]  | 日志记录时间  | 
DEBUG  | 日志级别(DEBUG、WARNING、ERROR)  | 
tid:64744  | 线程id  | 
con:0x7f8595b23800  | 对应的是proxy处理过程中连接对象的地址,和tid一起用于定位用户连接生命周期内的所有操作  | 
qid:8624534-1628419255-1298688  | proxy生成的事务id  | 
user:ksrcbadmin  | 用户名  | 
C:132.7.112.100:59585  | 客户端连接ip和端口  | 
G:132.7.100.3:42978  | 网关连接ip和端口  | 
S:132.7.100.12:4009  | 数据库服务器ip和端口  | 
timecost:0.979(ms)  | 语句耗时  | 
inj_id:1  | 这个是proxy拆分sql语句之后,标记这个语句时属于原始语句生成的,还是proxy自己补充的(比如xastart)  | 
sql:3,387 "/2:8624534-1628419255-1298688/select name, sub_system_code,  | 执行的sql语句  | 
c、慢查询日志slow_log
慢查询日志主要存储了ddl语句及响应时间超过1s的dml语句
# Time: 210910 16:33:17 432697
# User@Host: mc_test[mc_test] @ [10.0.1.35:43532]
# Backend_host: 10.0.1.12:4001,10.0.1.12:4002
# Thread_id: 1 Schema: test QC_hit: DEBUG
# Query_time: 0.214000 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
/*4194305-1631262696-7*/create table t1(acct_id bigint(20) primary key, ammount bigint(20)) shardkey=acct_id;
Time: 210910 16:33:17 432697  | 时间戳,sql执行的时间  | 
User@Host: mc_test[mc_test] @ [10.0.1.35:43532]  | 用户名,mysql用户比较特殊,是用户+host来进行权限控制  | 
Backend_host: 10.0.1.12:4001,10.0.1.12:4002  | 后台执行的db节点地址  | 
Thread_id: 1  | 线程id  | 
Schema: test  | 数据库名  | 
QC_hit: DEBUG  | 查询级别  | 
Query_time: 0.214000  | sql执行消耗的时间  | 
Lock_time: 0.000000  | sql执行过程中获取锁消耗的时间  | 
Rows_sent: 0  | 推送数据行数  | 
Rows_examined: 0  | 扫描数据行数  | 
/4194305-1631262696-7/create table t1(acct_id bigint(20) primary key, ammount bigint(20))  | 具体执行的sql语句  | 










