# qps
**Repository Path**: caidingnu/qps
## Basic Information
- **Project Name**: qps
- **Description**: qps统计监控
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-17
- **Last Updated**: 2025-12-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### QpsStatisticsService
核心统计服务,提供以下功能:
- [incrementRequestCount()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L21-L27) - 增加接口调用计数
- [calculateQpsForPeriod()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L35-L60) - 计算指定时间段内的 QPS
- [getCurrentQps()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L176-L178) - 获取当前 QPS(最近1分钟)
- [getQps10Min()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L184-L186) - 获取10分钟平均 QPS
- [getQps20Min()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L192-L194) - 获取20分钟平均 QPS
- [getQps30Min()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L200-L202) - 获取30分钟平均 QPS
- [getTotalRequests()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L168-L170) - 获取指定接口的总请求数
- [getAllQpsInfo()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L118-L134) - 获取所有接口的统计信息
- [cleanupOldData()](file:///Users/caidingnu/code/java/qps-starter/qps/src/main/java/com/cdn/qps/QpsStatisticsService.java#L139-L145) - 清理过期数据
## 配置说明
项目会自动扫描 `com.cdn.qps` 包下的所有组件,无需额外配置。
## 数据清理
系统会自动保留最近1小时的数据,定期清理过期数据以节省内存。
## 注意事项
1. QPS 统计基于分钟级别的时间窗口
2. 默认每5秒自动刷新监控面板数据
3. 高QPS(>100)显示为红色,中等QPS(50-100)显示为橙色,低QPS(<50)显示为绿色
## 使用
快速开始
1. 添加依赖
在您的 pom.xml 中添加以下依赖:
```xml
com.cdn
qps-starter
1.0.0
```
2. 启用 QPS 监控
在需要监控的接口方法上添加 @QpsMonitor 注解
```java
@RestController
public class DemoController {
@QpsMonitor("用户列表接口")
@GetMapping("/users")
public List getUsers() {
// 业务逻辑
return userService.getAllUsers();
}
@QpsMonitor // 不指定名称,默认使用类名+方法名
@PostMapping("/users")
public User createUser(@RequestBody User user) {
// 业务逻辑
return userService.createUser(user);
}
}
```