快速开始
3 步搞定,5 分钟内体验"点一下就跳回代码行"的爽感。
步骤 1:加依赖
在 pom.xml 中加一个依赖:
<dependency>
<groupId>top.dlzio</groupId>
<artifactId>dlz-lens-console</artifactId>
<version>1.0.0</version>
</dependency>
是的,就这一个依赖。不需要加 agent,不需要改启动参数,不需要部署任何服务端。
步骤 2:开个开关
在 application.yml 中加一行:
dlz:
lens:
enabled: true
步骤 3:打开浏览器
启动应用,访问:
http://localhost:8080/dlz-lens
随便操作一下你的应用,执行几个接口。
然后你会看到:
- 每一条 SQL 实时出现在屏幕上
- 每条 SQL 后面跟着"谁执行的、在第几行"
- 点一下那个类名+行号,IDEA 自动打开并定位到那一行
- 切到"故事回放"Tab,能看到每个请求的完整调用时间线
🎯 第一次看到"点一下就跳回代码行"的时候,99% 的人都会说"卧槽,这也太方便了"。
这就是 dlz-lens 的第一个爽点——从此 SQL 日志不再是死文字,是活的链接。
完整配置
dlz:
lens:
enabled: true # 是否开启(默认 false)
path: /dlz-lens # 控制台访问路径
app-name: my-app # 应用名称(显示在标题栏)
# 登录认证(生产环境建议设置)
username: admin # 登录用户名(不设置则免登录)
password: ${LENS_PASSWORD} # 登录密码(建议用环境变量)
# 存储配置
max-records: 1000 # 内存中最多保留的调用记录数
max-traces: 500 # 最多保留的请求 Trace 数
# 诊断配置
slow-threshold-ms: 1000 # 慢调用阈值(毫秒)
n-plus-one-threshold: 4 # N+1 检测阈值(同 trace 同模式出现次数)
# 性能配置
queue-capacity: 10000 # 异步队列容量(满了直接丢弃,不阻塞业务)
# 调用者过滤
include-packages: # 只关注这些包下的代码(可选,优先于 exclude)
- com.yourcompany
exclude-packages: # 跳过这些框架包(可选,有默认值)
- org.springframework
- org.apache.ibatis
支持的环境
| 环境 | 版本 |
|---|---|
| JDK | 8+ |
| Spring Boot | 2.x / 3.x |
| 数据库 | 所有 JDBC 数据库(MySQL / PostgreSQL / Oracle / SQL Server / SQLite …) |
| ORM | MyBatis / MyBatis-Plus / JDBCTemplate / JOOQ 等所有基于 JDBC 的框架 |
| 连接池 | HikariCP / Druid / Tomcat JDBC 等所有连接池 |
IDE 跳转配置(JetBrains IDEA)
点击调用栈能直接跳 IDE,是 dlz-lens 最爽的功能。只需确认一个设置:
- 打开 IDEA → Settings → Advanced Settings
- 找到 "Built-in server",勾选 Allow unsigned requests
- 确保 IDEA 正在运行且打开了你的项目
搞定。之后在控制台里点任何一个调用者,都会自动打开 IDEA 并定位到对应行。
原理:调用 IDEA 内置的 HTTP API(端口 63342),这是 JetBrains 官方提供的能力,安全可靠。
不同环境的推荐配置
开发环境
dlz:
lens:
enabled: true
# 开发环境不设密码,直接用
测试 / 预发环境
dlz:
lens:
enabled: true
username: admin
password: ${LENS_PASSWORD} # 通过环境变量注入
max-records: 2000 # 测试环境可以多存点
生产环境
dlz:
lens:
enabled: false # 默认关闭,需要排障时临时开启
需要排查问题时,通过配置中心临时打开
enabled: true,排完就关。生产环境开启时务必设置用户名密码,并通过网络策略限制访问 IP。
验证是否生效
启动后检查控制台日志,看到这行就说明成功了:
[dlz-lens] Console started at http://localhost:8080/dlz-lens
然后:
- 浏览器打开控制台页面
- 调一个接口
- 看控制台里有没有实时出现 SQL
- 点一下 SQL 后面的类名,看能不能跳到 IDEA
如果都 OK,恭喜你,以后调试 SQL 再也不用搜代码了 🎉