基于 Spring Boot 3 实现的轻量级 API 性能监控面板,采用分级采样策略,支持时间段筛选和接口名搜索功能。
├── 秒级桶 (最近5分钟) - 300个桶,精确到秒
├── 分钟级桶 (最近1小时) - 60个桶,分钟聚合
├── 小时级桶 (最近24小时) - 24个桶,小时聚合
└── 天级桶 (最近7天) - 7个桶,天聚合
- 后端: Spring Boot 3.2.1 + Spring AOP + Lombok
- 前端: 纯 HTML + TailwindCSS + Alpine.js
- Java 版本: 17+
cd springboot-api-dashboard
mvn clean install
mvn spring-boot:run项目内置了演示接口用于测试:
GET /api/demo/hello- 简单接口GET /api/demo/users- 用户列表POST /api/demo/users- 创建用户(模拟偶尔失败)GET /api/demo/products?limit=10- 商品列表GET /api/demo/orders/{orderId}- 订单查询GET /api/demo/slow- 慢接口(2-5秒)GET /api/demo/error- 错误接口(50%失败率)
GET /api/metrics?startTime=1640995200000&endTime=1641000000000&methodFilter=user
参数:
startTime- 开始时间戳(毫秒)endTime- 结束时间戳(毫秒)methodFilter- 接口名过滤关键字
GET /api/metrics/summary?startTime=1640995200000&endTime=1641000000000&methodFilter=user
GET /api/metrics/recent/5?methodFilter=demo # 最近5分钟
GET /api/metrics/recent/60?methodFilter=user # 最近1小时
DELETE /api/metrics
DELETE /api/metrics/stale?maxAgeMs=3600000
- 快捷按钮: 5分钟、30分钟、1小时、6小时、24小时
- 自定义时间: 精确指定开始和结束时间
- 智能桶选择: 根据时间跨度自动选择最适合的数据粒度
- 实时搜索: 输入关键字实时过滤接口
- 模糊匹配: 支持接口名模糊匹配
- 搜索防抖: 500ms防抖,避免频繁请求
- 汇总卡片: 监控接口数、总调用数、错误数、平均响应时间
- 详细表格: 每个接口的完整统计数据
- 多维排序: 支持按任意列排序
- 成功率进度条: 直观显示接口成功率
- ✅ 性能分析 - 快速找到最慢的方法
- ✅ 稳定性监控 - 发现失败次数多的接口
- ✅ 容量评估 - 统计高频调用方法,辅助扩容
- ✅ 临时排障 - 替代复杂APM,用于中小规模应用
- ✅ 趋势分析 - 通过时间筛选分析接口性能趋势
- ✅ 问题定位 - 通过搜索快速定位特定接口问题
- 监控数据存储在内存中,重启后会丢失
- 适合单机部署,不支持集群数据聚合
- 内存占用固定,适合高并发生产环境
- 数据精度在可接受范围内,适合APM监控场景