项目地址: https://github.com/iweidujiang/spring-insight (欢迎 Star)
当前版本: 0.2.0(Maven Central)· 监测中心镜像 ghcr.io/iweidujiang/spring-insight-server:0.2.0
0.1.0 能看链路,0.2.0 把存储和鉴权补上了
之前发了 《轻量级 Spring 监测工具——Spring Insight 正式发布》,不少同学把 0.1.0 装上了:业务加一个 Starter,Docker 起一个监测中心,拓扑和瀑布时间线当天就能看见。
那么 0.2.0 解决了哪些问题?先看下面几个:
- 容器一重建,刚才的调用链没了,能不能正经落一份(存储)?
- 9966 端口暴露在局域网里,上报和控制台能不能加道门(鉴权)?
- 内存里到底存了多少条、挤掉了多少,健康检查里能不能看见?
Spring Insight 0.2.0 就是冲着这几块来的。
定位没变:仍然是给 Spring Boot / Spring Cloud 用的轻量监测,不是 SkyWalking / OpenTelemetry 的替代品。
变的是 监测中心 更好用了——可以 SQLite 落库、可以按时间裁旧数据、可以给上报和控制台加上可选鉴权,错误分析也能按状态码和异常类往下钻。
主线还是 Boot 3.5 / JDK 21;还在 Boot 2.7 / Java 8 的,继续走 0.2.0-boot2。
没开 Token 时,0.1.x 的 Agent 仍可往 0.2 的 Server 上报,升级不必两头一起拆。

这次多了什么
对照 0.1.0,0.2.0 值得先记住这五条:
| 点 |
说明 |
| SQLite 存储 |
memory / file 之外多了 sqlite,库文件挂卷就能过重启 |
| 按时间保留 |
除了条数上限,还可以设 retention.max-age-hours,旧 Span 自己裁 |
| 可选上报 Token |
Server 开了之后,Agent 带 X-Insight-Token 或 Bearer,不开则和 0.1 一样 |
| 可选控制台登录 |
给 UI 加用户名密码,默认关闭,本地试用不必先配账号 |
| 错误分析能下钻 |
按 HTTP 状态码、异常类聚合,点进去是已筛好的 Trace |
另外还有两处小而实用的改动:
- 健康检查和 Actuator 能看到
stored / max / evicted,容量不再靠猜;
- 详情页可以把这条 Trace 的 Context 复制出来(
GET /api/v1/ui/traces/{id}/context),方便贴到工单或其它工具里。
Docker / Compose 推荐继续用 file 或 sqlite 并挂卷。换存储模式不会做自动迁移,等于新开一份数据,切换前心里要有数。
还是两步跑起来
第一步:Docker 起监测中心
docker run --rm -p 9966:9966 \
-e SPRING_INSIGHT_SERVER_STORAGE_MODE=file \
-e SPRING_INSIGHT_SERVER_STORAGE_FILE_PATH=/data/spans.json \
-v spring-insight-data:/data \
ghcr.io/iweidujiang/spring-insight-server:0.2.0
浏览器打开: http://localhost:9966/
想用 SQLite,把 mode 换成 sqlite,文件指到 /data/insight.db,同样挂上数据卷即可。仓库根目录 docker compose up -d 也会拉这份已发布镜像。
第二步:业务服务加依赖
Spring Boot 3 / JDK 21:
<dependency>
<groupId>io.github.iweidujiang</groupId>
<artifactId>spring-insight-agent-starter</artifactId>
<version>0.2.0</version>
</dependency>
spring:
application:
name: order-service
insight:
server-url: http://localhost:9966
Boot 2.7 / Java 8 换成:
<dependency>
<groupId>io.github.iweidujiang</groupId>
<artifactId>spring-insight-agent-starter-boot2</artifactId>
<version>0.2.0-boot2</version>
</dependency>
造几笔跨服务调用,等几秒(异步批量上报),刷新控制台。拓扑边、链路列表、瀑布时间线,这些 0.1.0 里已经有的能力,0.2.0 都还在。
控制台现在长这样
仪表盘
慢调用、错误调用的入口还在,方便从现象点进某条链路。

服务拓扑
谁调了谁、边上是次数;点节点或边可以下钻。

链路追踪
列表按 Trace 聚合,支持筛选;详情是瀑布时间线,以及 Span 的 tags / 错误信息。


错误分析
0.2.0 这边按状态码和异常类收口,可以从错误侧回到链路上。

需要时再打开的两道门

上报 Token(Server):
spring.insight.server.security.ingest-token-required:true
spring.insight.server.security.ingest-token:"change-me"
Agent 侧加一行 spring.insight.ingest-token: "change-me",请求头走 X-Insight-Token 或 Authorization: Bearer。Server 没开校验时,Agent 配了 token 也不影响兼容。
控制台登录:
spring.insight.server.security.ui-auth-enabled:true
spring.insight.server.security.ui-username:admin
spring.insight.server.security.ui-password:"change-me"
开启后访问会跳到 /login。健康检查和上报接口不受这道登录影响,避免把探针和埋点一起锁死。
坐标与链接
许可:Apache License 2.0
写在最后
0.1.0 解决的是「今天就能看见谁调了谁、慢在哪、错在哪」。0.2.0 把监测中心往前推了一步:数据可以留过重启,门口可以加锁,容量和错误也能看清楚一点。
它仍然很轻——Central 上的 Starter,GHCR 上的镜像,两步就能跑。
仓库在这:
https://github.com/iweidujiang/spring-insight
用得上的话欢迎 Star,升级时踩坑、文档不准、还想要的能力,直接开 Issue。