277 lines
6.8 KiB
Markdown
277 lines
6.8 KiB
Markdown
# 推荐系统日志和运行状态检查
|
||
|
||
## 问题描述
|
||
|
||
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日志
|
||
|
||
- **位置**:Redis(service="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接口是否正确
|
||
- 检查前端是否能正常获取数据
|
||
- 检查前端显示逻辑是否正确
|
||
|
||
**建议**:
|
||
- 先确保推荐服务正常运行
|
||
- 然后检查前端是否能正常显示推荐
|
||
- 如果前端有问题,再进行调整
|