# 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
```