Grafana Loki + Prometheus Alertmanager 集成

MagicTradeBot 原生支持集成 Grafana LokiPrometheus Alertmanager —— 这两者是功能强大的开源可观测性工具。通过此集成,您可以在所有机器人实例中实现集中式、实时的日志流、指标收集和告警管理


🚀 概览

MagicTradeBot 的核心引擎可以将日志和事件从任意机器人实例发送到 Loki 进行存储和查询,而 Prometheus Alertmanager 则根据自定义条件执行实时告警。

无论您是运行单个实例还是跨多个交易所、账户和服务器管理数百个机器人实例,该集成都可帮助您集中查看所有交易活动。


🔧 主要功能

  • 📡 实时日志转发至 Grafana Loki
  • 📊 收集策略、交易和性能指标
  • 🚨 通过 Prometheus Alertmanager 实现基于规则的告警
  • 🌐 支持多实例、多服务器
  • 📈 通过 Grafana 仪表板进行实时可视化与过滤

🛠️ 前提条件

  • 已部署并运行的 Grafana Loki 系统
  • Prometheus 服务器用于从机器人实例收集指标
  • 已配置的 Prometheus Alertmanager(用于 Email、Slack 或 Webhook 告警)
  • 机器人实例需配置唯一标签和日志端点

⚙️ 配置步骤

1. 启用 Loki 日志记录

编辑每个机器人实例的配置文件(例如 config.yamlappsettings.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 进行历史趋势分析和实时仪表板展示
  • 🔌 支持跨区域、跨环境的大规模部署
  • 🔍 可按交易对、交易所或策略快速查询与筛选日志

📎 Related Topics