auto_trade_sys/docs/推荐系统日志和运行状态检查.md
薇薇安 9fe028d704 a
2026-01-27 10:36:56 +08:00

277 lines
6.8 KiB
Markdown
Raw Permalink 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.

# 推荐系统日志和运行状态检查
## 问题描述
1. **感觉没有推荐了**:推荐系统可能没有正常运行
2. **recommendations_bot.log 是不是没用了**:需要确认日志文件位置
3. **推荐系统输出的日志在哪**:需要确认日志路径
4. **recommendations-viewer 需要调整吗**:需要检查前端是否需要调整
---
## 推荐系统日志配置
### 1. 日志文件位置
**代码位置**`trading_system/recommendations_main.py`
**日志文件**
- 默认:`recommendations_bot.log`(项目根目录)
- 可通过环境变量 `RECOMMEND_LOG_FILE` 覆盖
**日志输出**
1. **文件日志**`recommendations_bot.log`(项目根目录)
2. **控制台输出**stdout如果通过supervisor运行会被supervisor捕获
3. **Redis日志**写入Redis用于前端日志监控service="recommendations"
### 2. Supervisor配置
**当前情况**
- `supervisor_account.py` 只处理交易账户的配置(`auto_sys_acc1`, `auto_sys_acc2`等)
- **推荐服务没有自动生成supervisor配置**
**推荐服务可能的运行方式**
1. **手动运行**`python -m trading_system.recommendations_main`
2. **Supervisor手动配置**需要手动创建supervisor配置文件
3. **未运行**:推荐服务可能没有启动
---
## 检查推荐系统运行状态
### 1. 检查进程
```bash
# 检查推荐服务进程
ps aux | grep recommendations_main
# 检查supervisor管理的推荐服务
supervisorctl status | grep recommend
```
### 2. 检查日志文件
```bash
# 检查项目根目录的日志文件
ls -lh /www/wwwroot/autosys_new/recommendations_bot.log
# 查看日志内容
tail -f /www/wwwroot/autosys_new/recommendations_bot.log
# 检查supervisor日志如果通过supervisor运行
# 需要找到推荐服务的supervisor配置查看stdout_logfile和stderr_logfile
```
### 3. 检查Redis中的推荐数据
```bash
# 检查Redis中的推荐数据
redis-cli
> KEYS recommendations:*
> GET recommendations:snapshot
> HGETALL recommendations:realtime
```
### 4. 检查API接口
```bash
# 检查推荐API是否返回数据
curl http://asapi.deepx1.com/api/recommendations?type=realtime
```
---
## 推荐系统配置
### 1. 环境变量
推荐系统支持以下环境变量:
- `RECOMMEND_SCAN_INTERVAL_SEC`扫描间隔默认60秒
- `RECOMMEND_MIN_SIGNAL_STRENGTH`最小信号强度默认5
- `RECOMMEND_MAX_RECOMMENDATIONS`最大推荐数量默认60
- `RECOMMEND_MIN_QUALITY_SCORE`最小质量分数默认0.0
- `RECOMMEND_SCAN_CACHE_NAMESPACE`:缓存命名空间(默认"recommend"
- `RECOMMEND_LOG_FILE`:日志文件路径(默认"recommendations_bot.log"
### 2. Supervisor配置如果需要
如果需要通过supervisor管理推荐服务需要手动创建配置文件
```ini
[program:auto_recommend]
directory=/www/wwwroot/autosys_new
command=/www/wwwroot/autosys_new/trading_system/.venv/bin/python -m trading_system.recommendations_main
autostart=true
autorestart=unexpected
exitcodes=0,2
startsecs=0
stopasgroup=true
killasgroup=true
stopsignal=TERM
environment=PYTHONUNBUFFERED="1",PYTHONPATH="/www/wwwroot/autosys_new"
stdout_logfile=/www/wwwroot/autosys_new/logs/recommendations.out.log
stderr_logfile=/www/wwwroot/autosys_new/logs/recommendations.err.log
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=5
stderr_logfile_maxbytes=20MB
stderr_logfile_backups=5
```
---
## recommendations-viewer 检查
### 1. API接口
**文件**`recommendations-viewer/src/services/api.js`
**接口**`/api/recommendations?type=realtime`
**检查**
- API接口是否正确
- 是否返回数据
- 前端是否能正常显示
### 2. 是否需要调整
**当前实现**
- 每10秒静默更新价格
- 使用实时推荐type=realtime
- 从Redis读取推荐数据
**如果推荐系统没有运行**
- 前端会显示"没有推荐"或"加载失败"
- 需要确保推荐服务正常运行
---
## 解决方案
### 方案1检查推荐服务是否运行
```bash
# 1. 检查进程
ps aux | grep recommendations_main
# 2. 如果没有运行,手动启动
cd /www/wwwroot/autosys_new
source trading_system/.venv/bin/activate
python -m trading_system.recommendations_main
# 3. 或者通过supervisor启动如果已配置
supervisorctl start auto_recommend
```
### 方案2检查日志文件
```bash
# 1. 检查日志文件是否存在
ls -lh /www/wwwroot/autosys_new/recommendations_bot.log
# 2. 查看日志内容
tail -f /www/wwwroot/autosys_new/recommendations_bot.log
# 3. 如果日志文件不存在,可能是:
# - 推荐服务没有运行
# - 日志文件路径配置错误
# - 权限问题
```
### 方案3检查Redis数据
```bash
# 1. 连接Redis
redis-cli
# 2. 检查推荐数据
KEYS recommendations:*
GET recommendations:snapshot
HGETALL recommendations:realtime
# 3. 如果没有数据,说明推荐服务没有生成推荐
```
### 方案4检查API接口
```bash
# 1. 检查API是否返回数据
curl http://asapi.deepx1.com/api/recommendations?type=realtime
# 2. 如果返回空数组,说明:
# - 推荐服务没有运行
# - 推荐服务运行但没有生成推荐
# - Redis中没有推荐数据
```
---
## 推荐系统日志位置总结
### 1. 文件日志
- **位置**`/www/wwwroot/autosys_new/recommendations_bot.log`
- **说明**:如果推荐服务运行,日志会写入这个文件
### 2. Supervisor日志如果通过supervisor运行
- **位置**根据supervisor配置的 `stdout_logfile``stderr_logfile`
- **说明**如果推荐服务通过supervisor运行日志会写入supervisor配置的日志文件
### 3. Redis日志
- **位置**Redisservice="recommendations"
- **说明**:用于前端日志监控
---
## 下一步操作
1. **检查推荐服务是否运行**
```bash
ps aux | grep recommendations_main
```
2. **检查日志文件**
```bash
tail -f /www/wwwroot/autosys_new/recommendations_bot.log
```
3. **检查Redis数据**
```bash
redis-cli
> KEYS recommendations:*
```
4. **检查API接口**
```bash
curl http://asapi.deepx1.com/api/recommendations?type=realtime
```
5. **如果推荐服务没有运行,启动它**
```bash
# 手动启动
python -m trading_system.recommendations_main
# 或通过supervisor启动如果已配置
supervisorctl start auto_recommend
```
---
## recommendations-viewer 是否需要调整
**当前情况**
- 前端代码看起来正常
- 如果推荐系统正常运行,前端应该能正常显示推荐
**如果需要调整**
- 检查API接口是否正确
- 检查前端是否能正常获取数据
- 检查前端显示逻辑是否正确
**建议**
- 先确保推荐服务正常运行
- 然后检查前端是否能正常显示推荐
- 如果前端有问题,再进行调整