Initial commit

This commit is contained in:
Docker7530
2026-03-01 01:43:46 +08:00
commit c6125c117b
3840 changed files with 415340 additions and 0 deletions
@@ -0,0 +1,100 @@
# 网关转发记录曲线图接口说明
## 接口概述
新增了一个高效的曲线图数据查询接口,用于展示网关转发记录的统计数据。该接口支持多种时间粒度的聚合查询,并提供丰富的过滤条件。
## 接口信息
- **接口路径**: `POST /gateway/record/chart`
- **请求方式**: POST
- **Content-Type**: application/json
## 请求参数
### 必填参数
| 参数名 | 类型 | 说明 | 示例 |
|--------|------|------|------|
| startTime | LocalDateTime | 查询开始时间 | "2024-01-01 00:00:00" |
| endTime | LocalDateTime | 查询结束时间 | "2024-01-01 23:59:59" |
| timeGranularity | String | 时间粒度 | "5MIN" |
### 时间粒度选项
| 值 | 说明 | 聚合方式 |
|----|------|----------|
| 5MIN | 5分钟 | 按5分钟间隔聚合(00:00-00:04, 00:05-00:09…) |
| 1HOUR | 1小时 | 按小时聚合 |
| 1DAY | 1天 | 按天聚合 |
| 1WEEK | 1周 | 按周聚合(周一为起始) |
| 1MONTH | 1月 | 按月聚合 |
### 可选过滤参数
| 参数名 | 类型 | 说明 | 是否支持模糊查询 |
|--------|------|------|------------------|
| requestUrl | String | 接口路径 | ✅ |
| method | String | 请求方法 | ❌ |
| targetEndpoint | String | 目的地址 | ✅ |
| httpCode | Integer | HTTP状态码 | ❌ |
| gatewayEndpoint | String | 网关地址 | ✅ |
| minCostTime | Integer | 最小耗时(ms) | ❌ |
| maxCostTime | Integer | 最大耗时(ms) | ❌ |
| routeId | Long | 路由ID | ❌ |
| routeName | String | 路由名称 | ✅ |
## 请求示例
```json
{
"startTime": "2024-01-01 00:00:00", "endTime": "2024-01-01 23:59:59", "timeGranularity": "1HOUR", "requestUrl": "/api/user", "method": "GET", "minCostTime": 100, "maxCostTime": 5000}
```
## 响应数据结构
```json
{
"code": 200, "msg": "操作成功",
"data": { "dataPoints": [ { "timePoint": "2024-01-01 00:00:00", "count2xx": 150, "count4xx": 10, "count5xx": 2, "countOther": 1, "avgCostTime": 245.67 }, { "timePoint": "2024-01-01 01:00:00", "count2xx": 200, "count4xx": 15, "count5xx": 3, "countOther": 0, "avgCostTime": 198.34 } ] }}
```
## 响应字段说明
### dataPoints 数组中每个元素的字段
| 字段名 | 类型 | 说明 |
|--------|------|------|
| timePoint | LocalDateTime | 时间点(X轴) |
| count2xx | Long | 2xx状态码请求次数(左Y轴) |
| count4xx | Long | 4xx状态码请求次数(左Y轴) |
| count5xx | Long | 5xx状态码请求次数(左Y轴) |
| countOther | Long | 其他状态码请求次数(左Y轴) |
| avgCostTime | BigDecimal | 平均耗时ms,保留2位小数(右Y轴) |
## 性能优化说明
1. **索引优化**: 建议在 `request_time` 字段上创建索引以提高查询效率
2. **模糊查询**: 仅在 `requestUrl`、`targetEndpoint`、`gatewayEndpoint`、`routeName` 字段支持模糊查询
3. **时间范围**: 建议查询时间范围不要过大,以保证响应速度
4. **聚合查询**: 使用数据库层面的聚合查询,减少内存占用
## 前端图表建议
- **左Y轴**: 显示请求次数(count2xx, count4xx, count5xx, countOther
- **右Y轴**: 显示平均耗时(avgCostTime
- **X轴**: 显示时间(timePoint
- **图表类型**: 建议使用折线图或柱状图
- **颜色建议**:
- 2xx: 绿色(成功)
- 4xx: 橙色(客户端错误)
- 5xx: 红色(服务器错误)
- 其他: 灰色
- 平均耗时: 蓝色
## 注意事项
1. 时间粒度为左闭右开区间
2. 大数据量查询时建议适当限制时间范围
3. 模糊查询会影响性能,请谨慎使用
4. 平均耗时为0表示该时间段内没有有效的耗时数据