|
| 1 | +# 运行体检中心 |
| 2 | + |
| 3 | +智能运维项目中的运行体检中心模块,负责定时检测系统运行指标。 |
| 4 | + |
| 5 | +## 功能特性 |
| 6 | + |
| 7 | +- 🔍 **服务发现**: 自动获取所有可用服务 |
| 8 | +- 📊 **指标检测**: 检测延迟、流量、错误率、饱和度等关键指标 |
| 9 | +- 🤖 **异常检测**: 集成AI检测能力(待完善) |
| 10 | +- 🚨 **告警处理**: 异常时触发告警机制 |
| 11 | +- ⏰ **定时调度**: 支持定时和持续检测模式 |
| 12 | + |
| 13 | +## 文件说明 |
| 14 | + |
| 15 | +- `server.py` - Mock服务器,模拟Prometheus API |
| 16 | +- `health_check_center.py` - 体检中心核心逻辑 |
| 17 | +- `test_health_center.py` - 测试脚本 |
| 18 | +- `run_health_center.py` - 启动脚本 |
| 19 | + |
| 20 | +## 快速开始 |
| 21 | + |
| 22 | +### 1. 启动Mock服务器 |
| 23 | +```bash |
| 24 | +python server.py |
| 25 | +``` |
| 26 | +服务器将在 http://localhost:8080 启动 |
| 27 | + |
| 28 | +### 2. 运行体检中心 |
| 29 | + |
| 30 | +#### 方式一:使用启动脚本(推荐) |
| 31 | +```bash |
| 32 | +python run_health_center.py |
| 33 | +``` |
| 34 | +然后选择运行模式: |
| 35 | +- 单次检测 |
| 36 | +- 持续检测(每5分钟) |
| 37 | +- 自定义间隔持续检测 |
| 38 | + |
| 39 | +#### 方式二:直接运行 |
| 40 | +```bash |
| 41 | +# 单次检测 |
| 42 | +python health_check_center.py |
| 43 | + |
| 44 | +# 测试功能 |
| 45 | +python test_health_center.py |
| 46 | +``` |
| 47 | + |
| 48 | +## 检测流程 |
| 49 | + |
| 50 | +1. **服务发现** - 获取所有服务列表 |
| 51 | +2. **指标遍历** - 遍历每个服务的4个关键指标 |
| 52 | +3. **数据获取** - 从Prometheus获取时间序列数据 |
| 53 | +4. **异常检测** - 使用AI分析指标异常(当前为模拟) |
| 54 | +5. **告警处理** - 异常时触发告警机制 |
| 55 | + |
| 56 | +## 指标类型 |
| 57 | + |
| 58 | +- `latency` - 延迟指标(响应时间) |
| 59 | +- `traffic` - 流量指标(请求量) |
| 60 | +- `errorRatio` - 错误率指标 |
| 61 | +- `saturation` - 饱和度指标(资源使用率) |
| 62 | + |
| 63 | +## 配置说明 |
| 64 | + |
| 65 | +### 修改检测指标 |
| 66 | +在 `health_check_center.py` 中修改 `metrics_to_check` 列表: |
| 67 | +```python |
| 68 | +self.metrics_to_check = [ |
| 69 | + 'latency', |
| 70 | + 'traffic', |
| 71 | + 'errorRatio', |
| 72 | + 'saturation' |
| 73 | +] |
| 74 | +``` |
| 75 | + |
| 76 | +### 修改检测间隔 |
| 77 | +在 `run_continuous_check()` 方法中修改 `interval_minutes` 参数。 |
| 78 | + |
| 79 | +### 修改时间范围 |
| 80 | +在 `fetch_metric_data()` 方法中修改 `time_range_hours` 参数。 |
| 81 | + |
| 82 | +## 日志说明 |
| 83 | + |
| 84 | +- `INFO` - 正常流程信息 |
| 85 | +- `WARNING` - 警告信息(如数据获取失败) |
| 86 | +- `ERROR` - 错误信息(如网络连接失败) |
| 87 | + |
| 88 | +## 待完善功能 |
| 89 | + |
| 90 | +- [ ] 集成真实的Prometheus API |
| 91 | +- [ ] 实现LangGraph + AI异常检测 |
| 92 | +- [ ] 集成真实的告警模块 |
| 93 | +- [ ] 添加数据库存储 |
| 94 | +- [ ] 支持更多指标类型 |
| 95 | +- [ ] 添加Web管理界面 |
| 96 | + |
| 97 | +## 注意事项 |
| 98 | + |
| 99 | +1. 确保Mock服务器在体检中心之前启动 |
| 100 | +2. 当前异常检测为模拟实现,总是返回异常 |
| 101 | +3. 告警处理为模拟实现,仅打印日志 |
| 102 | +4. 建议在生产环境中使用真实的Prometheus和告警系统 |
| 103 | + |
0 commit comments