网关转发记录曲线图接口说明
接口概述
新增了一个高效的曲线图数据查询接口,用于展示网关转发记录的统计数据。该接口支持多种时间粒度的聚合查询,并提供丰富的过滤条件。
接口信息
- 接口路径:
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 |
路由名称 |
✅ |
请求示例
响应数据结构
响应字段说明
dataPoints 数组中每个元素的字段
| 字段名 |
类型 |
说明 |
| timePoint |
LocalDateTime |
时间点(X轴) |
| count2xx |
Long |
2xx状态码请求次数(左Y轴) |
| count4xx |
Long |
4xx状态码请求次数(左Y轴) |
| count5xx |
Long |
5xx状态码请求次数(左Y轴) |
| countOther |
Long |
其他状态码请求次数(左Y轴) |
| avgCostTime |
BigDecimal |
平均耗时ms,保留2位小数(右Y轴) |
性能优化说明
- 索引优化: 建议在
request_time 字段上创建索引以提高查询效率
- 模糊查询: 仅在
requestUrl、targetEndpoint、gatewayEndpoint、routeName 字段支持模糊查询
- 时间范围: 建议查询时间范围不要过大,以保证响应速度
- 聚合查询: 使用数据库层面的聚合查询,减少内存占用
前端图表建议
- 左Y轴: 显示请求次数(count2xx, count4xx, count5xx, countOther)
- 右Y轴: 显示平均耗时(avgCostTime)
- X轴: 显示时间(timePoint)
- 图表类型: 建议使用折线图或柱状图
- 颜色建议:
- 2xx: 绿色(成功)
- 4xx: 橙色(客户端错误)
- 5xx: 红色(服务器错误)
- 其他: 灰色
- 平均耗时: 蓝色
注意事项
- 时间粒度为左闭右开区间
- 大数据量查询时建议适当限制时间范围
- 模糊查询会影响性能,请谨慎使用
- 平均耗时为0表示该时间段内没有有效的耗时数据