## 新增服务模块 ### 1. ERP服务 (hzhub-erp) - 新增独立的ERP数据适配服务 - 支持SQL Server 2008 R2数据源 - 提供动态API配置管理系统 - 包含客户管理、销售数据等业务接口 ### 2. 系统服务 (hzhub-system) - 新增独立的系统管理服务 - 用户、角色、权限、部门、菜单管理 - 租户管理、操作日志、在线用户监控 - 工作流引擎(warm-flow)集成 - 企业微信审批同步功能 ### 3. API网关 (hzhub-gateway) - 新增Spring Cloud Gateway网关服务 - JWT认证、路由分发、限流熔断 - XSS防护、请求日志记录 - 统一入口端口8080 ## 后台管理功能增强 ### ERP动态API管理 - 新增动态API配置管理界面 - API测试、文档预览、统计监控 - 错误日志查看、缓存管理 - 从数据库表自动导入API配置 ### 系统管理增强 - 企业微信配置管理 - 企业微信审批同步配置 - 部门和用户管理优化 ## 员工门户功能完善 ### 业务页面 - 审批中心:工作流审批、待办任务 - CRM管理:客户关系管理 - 经销商管理:经销商数据展示 - 供应链管理:采购、库存、销售 - BI报表:数据可视化分析 - ERP数据探索:SQL Server数据查询 ### 个人中心 - 基本设置:个人信息管理 - 安全设置:密码修改、登录日志 - 锁屏功能:自动锁屏、手动锁屏 ### 其他功能 - 标签页管理:多标签页导航 - 页面缓存:keepAlive缓存机制 - 会话超时:自动检测并提示 ## 经销商门户 ### 页面路由 - 新增经销商管理页面路由 - AI聊天界面完善 ## 文档更新 - ERP API数据库初始化指南 - ERP API前端完整实现文档 - ERP API测试和验证指南 - Gateway路由迁移计划 - 项目配置文档更新 ## 部署脚本 - 统一启动/停止/重启脚本 - Docker Compose配置优化 - Nginx配置文件更新 ## 技术栈 - 后端: Spring Boot 3.5.8, Java 17 - 前端: Vue 3, TypeScript, Element Plus, Vben Admin - 工作流: warm-flow 1.8.2 - 网关: Spring Cloud Gateway - 数据库: MySQL 8.0, SQL Server 2008 R2 - 缓存: Redis 7 - 向量库: Weaviate 1.25.0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
199 lines
6.8 KiB
Markdown
199 lines
6.8 KiB
Markdown
# ERP API 统计监控功能说明
|
||
|
||
## 功能概述
|
||
|
||
ERP API统计监控页面提供多维度的API调用分析和性能监控功能,帮助开发者快速定位问题、优化性能。
|
||
|
||
## 页面布局
|
||
|
||
页面采用上下堆叠布局:
|
||
- **上方**:API概览(显示所有API的汇总统计)
|
||
- **下方**:详细统计(单个API的详细分析和监控)
|
||
|
||
## 主要功能模块
|
||
|
||
### 1. API概览卡片
|
||
|
||
显示整个系统的API汇总数据:
|
||
- **API总数**:系统中配置的API数量
|
||
- **启用API**:状态为启用的API数量
|
||
- **禁用API**:状态为禁用的API数量
|
||
- **启用缓存**:启用Redis缓存的API数量
|
||
|
||
### 2. 详细统计筛选
|
||
|
||
提供多种筛选和控制选项:
|
||
- **API选择**:下拉选择要查看的API
|
||
- **时间范围**:DatePicker范围选择器(可选)
|
||
- **查询按钮**:立即查询统计数据
|
||
- **刷新按钮**:手动刷新统计数据
|
||
- **重置按钮**:重置时间范围并重新查询
|
||
- **自动刷新开关**:开启/关闭自动刷新
|
||
- **刷新间隔配置**:设置自动刷新的时间间隔(10-300秒)
|
||
- **慢查询阈值配置**:定义慢查询的响应时间阈值(100-10000ms)
|
||
|
||
### 3. 统计卡片组(8个核心指标)
|
||
|
||
横向排列的统计卡片,显示API的核心性能数据:
|
||
- **总调用次数**:该API的总调用次数
|
||
- **成功次数**:调用成功的次数(绿色标识)
|
||
- **错误次数**:调用失败的次数(红色标识)
|
||
- **错误率**:错误次数占比百分比(超过5%时红色警告)
|
||
- **平均响应时间**:所有调用的平均响应时间(超过阈值时黄色警告)
|
||
- **最大响应时间**:响应时间最大值(超过阈值时红色警告)
|
||
- **最小响应时间**:响应时间最小值
|
||
- **慢查询次数**:响应时间超过阈值的调用次数(黄色标识)
|
||
|
||
### 4. 性能指标卡片(4个综合指标)
|
||
|
||
提供更深度的性能分析:
|
||
- **性能健康度**:综合考虑错误率和响应时间的健康评分(0-100分)
|
||
- 80+分:优秀(绿色)
|
||
- 60-80分:一般(黄色)
|
||
- <60分:差(红色)
|
||
- 包含健康状态描述
|
||
|
||
- **成功率**:成功调用占比的进度条展示
|
||
- 显示成功次数/总次数的详细数据
|
||
|
||
- **响应时间分布**:响应时间性能评分
|
||
- 基于平均响应时间和阈值的对比
|
||
- 颜色分级显示性能状态
|
||
|
||
- **缓存状态**:显示该API是否启用Redis缓存
|
||
- 启用:绿色显示"已启用"
|
||
- 未启用:灰色显示"未启用"
|
||
- 提示缓存可提升性能
|
||
|
||
### 5. 性能优化建议卡片
|
||
|
||
基于统计数据自动生成优化建议:
|
||
- **高错误率警告**:错误率>5%,建议检查API配置和SQL
|
||
- **慢查询警告**:平均响应时间超过阈值,建议优化SQL或启用缓存
|
||
- **缓存未启用提示**:调用次数>10且未启用缓存,建议启用
|
||
- **性能优秀提示**:错误率≤1%且响应时间良好,保持现状
|
||
|
||
### 6. 统计概览Tab
|
||
|
||
当API有调用记录时显示:
|
||
- 功能完善说明
|
||
- 性能优化建议卡片
|
||
|
||
当API无调用记录时提示:
|
||
- 该API暂无调用记录
|
||
- 建议先调用动态API触发统计
|
||
|
||
### 7. 错误日志Tab
|
||
|
||
显示API的错误调用记录:
|
||
- **调用时间**:错误发生的时间
|
||
- **响应时间**:该次调用的响应时间
|
||
- **客户端IP**:调用方的IP地址
|
||
- **用户ID**:调用方的用户标识
|
||
- **错误消息**:截断显示(完整内容在Tooltip中)
|
||
- **详情按钮**:打开错误详情弹窗
|
||
|
||
### 8. 错误详情弹窗
|
||
|
||
点击"详情"按钮打开,显示完整的错误信息:
|
||
- **调用信息**:调用时间、响应时间、客户端IP、用户ID、调用状态、统计ID
|
||
- **错误信息**:醒目的红色Alert显示完整错误消息
|
||
- **调用参数**:可折叠的JSON格式化参数展示
|
||
- **执行的SQL**:可折叠的SQL语句展示(实际执行的SQL,参数已替换)
|
||
- **错误堆栈**:可折叠的错误堆栈(前10行)
|
||
|
||
## 使用场景
|
||
|
||
### 场景1:监控API运行状态
|
||
1. 选择要监控的API
|
||
2. 查看统计卡片了解基本性能数据
|
||
3. 查看性能健康度了解整体状态
|
||
4. 根据优化建议进行改进
|
||
|
||
### 场景2:分析错误问题
|
||
1. 选择有错误的API
|
||
2. 切换到"错误日志"Tab
|
||
3. 查看错误消息概览
|
||
4. 点击"详情"查看完整的错误信息、SQL和堆栈
|
||
5. 根据详细信息定位问题根源
|
||
|
||
### 场景3:优化慢查询
|
||
1. 设置慢查询阈值(如1000ms)
|
||
2. 查看慢查询次数统计
|
||
3. 如果慢查询较多,查看平均/最大响应时间
|
||
4. 根据建议优化SQL或启用缓存
|
||
|
||
### 场景4:实时监控
|
||
1. 开启自动刷新开关
|
||
2. 设置刷新间隔(如30秒)
|
||
3. 页面将自动刷新统计数据
|
||
4. 实时观察API性能变化
|
||
|
||
### 场景5:时间范围分析
|
||
1. 选择时间范围(如最近1小时)
|
||
2. 查询该时间段内的统计数据
|
||
3. 对比不同时间段的性能差异
|
||
4. 分析高峰时段的性能表现
|
||
|
||
## 技术实现要点
|
||
|
||
### 前端技术栈
|
||
- Vue 3 Composition API
|
||
- Ant Design Vue组件库
|
||
- TypeScript类型安全
|
||
- Reactive响应式数据
|
||
- Computed计算属性
|
||
- Watch监听器
|
||
- 定时器管理
|
||
|
||
### 后端支持接口
|
||
- `GET /erp/api/config/stats/{apiId}` - 查询统计数据
|
||
- `GET /erp/api/config/errorLog/{apiId}` - 查询错误日志
|
||
- `GET /erp/api/config/list` - 查询API列表
|
||
|
||
### 数据库表
|
||
- `erp_api_stats` - 存储每次API调用的详细信息
|
||
- 字段:api_id, call_time, call_params, executed_sql, response_time, call_status, error_message, error_stack, client_ip, user_id
|
||
|
||
### 性能指标计算公式
|
||
|
||
**健康度评分**:
|
||
```javascript
|
||
健康度 = (错误评分 + 响应时间评分) / 2
|
||
错误评分 = max(0, 100 - 错误率 * 10) // 每1%错误率扣10分
|
||
响应时间评分 = max(0, 100 - (平均响应时间 / 阈值) * 20)
|
||
```
|
||
|
||
**慢查询判定**:
|
||
```javascript
|
||
慢查询 = 响应时间 > 配置的阈值(默认1000ms)
|
||
```
|
||
|
||
## 扩展功能建议
|
||
|
||
### 未来可扩展功能
|
||
1. **图表可视化**:集成ECharts,展示调用趋势图、响应时间分布图
|
||
2. **导出功能**:导出统计数据为CSV或Excel
|
||
3. **告警通知**:配置告警阈值,超过阈值发送邮件/短信通知
|
||
4. **对比分析**:多个API的性能对比
|
||
5. **缓存命中率统计**:如果启用缓存,显示缓存命中率
|
||
6. **数据留存策略**:设置统计数据保留时长
|
||
7. **慢查询日志详情**:显示慢查询的具体SQL和参数
|
||
|
||
## 注意事项
|
||
|
||
1. **自动刷新**:自动刷新会消耗服务器资源,建议在需要实时监控时才开启
|
||
2. **时间范围**:查询较长时间范围的数据可能较慢,建议根据数据量选择合适的时间范围
|
||
3. **错误详情**:错误堆栈可能很长,弹窗中只显示前10行便于快速定位
|
||
4. **性能建议**:系统自动给出的建议仅供参考,实际优化需结合具体业务场景
|
||
|
||
## 页面访问地址
|
||
|
||
```
|
||
http://192.168.120.60:5666/erp/stats
|
||
```
|
||
|
||
或本地开发环境:
|
||
```
|
||
http://localhost:5666/#/erp/stats
|
||
``` |