Интеграция Grafana Loki + Prometheus Alertmanager

MagicTradeBot предоставляет встроенную поддержку интеграции с Grafana Loki и Prometheus Alertmanager — мощными инструментами с открытым исходным кодом для наблюдаемости. Эта интеграция позволяет централизованно управлять потоком логов, сбором метрик и системой оповещений в реальном времени для всех экземпляров бота.


🚀 Обзор

Ядро MagicTradeBot может пересылать логи и события из любого экземпляра бота в Loki для хранения и последующего запроса, а Prometheus Alertmanager обрабатывает оповещения в реальном времени на основе пользовательских условий.

Независимо от того, работаете ли вы с одним экземпляром или управляете сотнями экземпляров бота на разных биржах, аккаунтах и серверах — эта интеграция обеспечивает централизованный обзор всей торговой активности.


🔧 Ключевые возможности

  • 📡 Поток логов в реальном времени в Grafana Loki
  • 📊 Сбор метрик для стратегий, сделок и производительности
  • 🚨 Оповещения по правилам через Prometheus Alertmanager
  • 🌐 Поддержка нескольких экземпляров и серверов
  • 📈 Дашборды Grafana для визуализации и фильтрации в реальном времени

🛠️ Предварительные требования

  • Развернутый и работающий стек Grafana Loki
  • Сервер Prometheus, собирающий метрики с экземпляров бота
  • Настроенный Prometheus Alertmanager для отправки уведомлений (например, Email, Slack, Webhooks)
  • Экземпляры бота настроены с уникальными метками и лог-эндпоинтами

⚙️ Этапы настройки

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 в каждом экземпляре бота, чтобы метрики были доступны на локальном эндпоинте:

metrics:
  prometheus:
    enabled: true
    port: 9100

Prometheus будет собирать метрики с http://localhost:9100/metrics.

3. Добавьте целевой бот в конфигурацию Prometheus

Отредактируйте файл prometheus.yml, чтобы включить новый эндпоинт бота:

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