⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 mp.weixin.qq.com/s?__biz=MzU2MTI4MjI0MQ==&mid=2247542587&idx=1&sn=b2a4286b36ab759b4fcd107104e3aafa&poc_token=HMe7vmmj60xnK7rXK8S2ghjE8mjgqkcbK31jC6vn 「null」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

排查 SQL 性能问题,传统手段各有各的痛:翻慢查询日志发现已经轮转了,加 APM 探针配置繁琐还要改代码,看 pg_stat_statements 或 performance_schema 又总觉得信息碎片化、缺事务上下文。

要么侵入性强,要么信息滞后,要么维度单一。

sql-tap 的思路不一样——它是个透明代理,往应用和数据库之间一插,SQL 流量实时可见,零侵入。

开源地址:https://github.com/mickamy/sql-tap

sql-tap 怎么工作的?

两个组件,分工明确:

sql-tapd(代理)——监听一个端口(比如 :5433),应用连它而不是直连数据库。它干两件事:① 双向透明转发全部流量,业务完全无感;② 同时复制一份做协议深度解析。支持 PostgreSQL、MySQL、TiDB。

sql-tap(TUI 客户端)——通过 gRPC 流接收代理解析出的事件,终端里实时展示。每条查询的时间、来源客户端、执行耗时、所属事务——一目了然。

三步上手

1. 启动代理

sql-tapd -driver postgres -listen :5433 -upstream localhost:5432

2. 改应用连接地址

把数据库连接串里的 localhost:5432 改成 proxy-host:5433,重启应用。

3. 打开监控终端

sql-tap --connect grpc://proxy-host:8080

SQL 流量就在终端里实时滚动了。

效果展示

开源地址:https://github.com/mickamy/sql-tap

文章目录
  1. 1. sql-tap 怎么工作的?
  2. 2. 三步上手
  3. 3. 效果展示