Files
hzhub/hzhub-erp/docs/api-stats-feature.md
大壮 c2513849b4 feat: 添加ERP服务和系统服务,完善员工门户功能
## 新增服务模块

### 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>
2026-05-08 08:00:19 +00:00

199 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```