跳到主要内容

快速开始

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

支持的环境

环境版本
JDK8+
Spring Boot2.x / 3.x
数据库所有 JDBC 数据库(MySQL / PostgreSQL / Oracle / SQL Server / SQLite …)
ORMMyBatis / MyBatis-Plus / JDBCTemplate / JOOQ 等所有基于 JDBC 的框架
连接池HikariCP / Druid / Tomcat JDBC 等所有连接池

IDE 跳转配置(JetBrains IDEA)

点击调用栈能直接跳 IDE,是 dlz-lens 最爽的功能。只需确认一个设置:

  1. 打开 IDEA → Settings → Advanced Settings
  2. 找到 "Built-in server",勾选 Allow unsigned requests
  3. 确保 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

然后:

  1. 浏览器打开控制台页面
  2. 调一个接口
  3. 看控制台里有没有实时出现 SQL
  4. 点一下 SQL 后面的类名,看能不能跳到 IDEA

如果都 OK,恭喜你,以后调试 SQL 再也不用搜代码了 🎉