MagicTradeBot 原生支持集成 Grafana Loki 和 Prometheus Alertmanager —— 这两者是功能强大的开源可观测性工具。通过此集成,您可以在所有机器人实例中实现集中式、实时的日志流、指标收集和告警管理。
🚀 概览
MagicTradeBot 的核心引擎可以将日志和事件从任意机器人实例发送到 Loki 进行存储和查询,而 Prometheus Alertmanager 则根据自定义条件执行实时告警。
无论您是运行单个实例还是跨多个交易所、账户和服务器管理数百个机器人实例,该集成都可帮助您集中查看所有交易活动。
🔧 主要功能
- 📡 实时日志转发至 Grafana Loki
- 📊 收集策略、交易和性能指标
- 🚨 通过 Prometheus Alertmanager 实现基于规则的告警
- 🌐 支持多实例、多服务器
- 📈 通过 Grafana 仪表板进行实时可视化与过滤
🛠️ 前提条件
- 已部署并运行的 Grafana Loki 系统
- Prometheus 服务器用于从机器人实例收集指标
- 已配置的 Prometheus Alertmanager(用于 Email、Slack 或 Webhook 告警)
- 机器人实例需配置唯一标签和日志端点
⚙️ 配置步骤
1. 启用 Loki 日志记录
编辑每个机器人实例的配置文件(例如 config.yaml
或 appsettings.json
):
logging:
loki:
enabled: true
endpoint: "http://your-loki-server:3100/loki/api/v1/push"
labels:
bot_instance: "bot-eu-1"
exchange: "binance"
environment: "production"
log_level: "info"
2. 启用 Prometheus 指标导出
在每个机器人实例中启用 Prometheus exporter,以在本地端口暴露指标:
metrics:
prometheus:
enabled: true
port: 9100
Prometheus 将从 http://localhost:9100/metrics
抓取指标。
3. 将机器人目标添加到 Prometheus 配置中
编辑 prometheus.yml
文件,添加新的 bot endpoint:
scrape_configs:
- job_name: "magictradebot"
static_configs:
- targets: ["localhost:9100"]
4. 在 Prometheus 中设置告警规则
例如,您可以定义如下告警规则:
groups:
- name: BotAlerts
rules:
- alert: HighErrorRate
expr: rate(bot_errors_total[5m]) > 5
for: 1m
labels:
severity: warning
annotations:
summary: "MagicTradeBot 出现高错误率"
5. 连接 Alertmanager
确保 Prometheus 已连接到 Alertmanager,可将告警通知通过所选渠道发送出去。
🧪 Loki 日志示例
{
"timestamp": "2025-06-20T09:32:10Z",
"level": "info",
"message": "Executed long trade",
"exchange": "binance",
"symbol": "ETH/USDT",
"strategy": "Breakout",
"profit": 5.12,
"bot_instance": "bot-eu-2"
}
✅ 集成 Grafana Loki + Prometheus 的优势
- 📍 所有机器人活动的集中式可观测性
- ⚠️ 针对错误激增、交易异常或停机的主动告警
- 📊 使用 Grafana 进行历史趋势分析和实时仪表板展示
- 🔌 支持跨区域、跨环境的大规模部署
- 🔍 可按交易对、交易所或策略快速查询与筛选日志