Быстрый старт
Подробное объяснение логов Barfinex Provider
Подробное руководство по логам Barfinex Provider - этапы запуска, типовые сообщения, частые ошибки и быстрые способы диагностики проблем.
🔍 Карта логов Barfinex Provider
При старте Barfinex Provider проходит несколько стадий инициализации: загрузка сертификатов, чтение конфигурации, подключение Redis, проверка Binance и запуск REST/WebSocket API. Каждый этап отражается в логах — зная эту последовательность, можно по первым строкам быстро определить, всё ли прошло успешно и где искать проблему.
Как читать логи Barfinex Provider
Для просмотра:
docker compose logs -f provider
1️⃣ HTTPS включён
✅ HTTPS включён (сертификаты загружены)
Что это значит
Сертификаты успешно найдены и загружены. Сервер доступен по адресу вида:
https://localhost:8081- или по вашему домену, если настроены боевые сертификаты.
Типовые проблемы
ENOENT: no such file or directory, open './cert.pem'— сертификат не найден.
→ проверь путь и имена файлов в конфиге или переменных окружения (SSL_CERT_PATH,SSL_KEY_PATH).Нужен самоподписанный сертификат?
→ сгенерируйте:mkcert localhostи положите файлы в каталог, указанный вdocker-compose.yml(./cert/...).
2️⃣ Конфигурация загружена
🧩 Config path resolved to: ...config.json 📄 Loading nested config for "provider": config.provider.json ✅ Configuration successfully loaded.
Что это значит
Основной конфиг и вложенные JSON-файлы найдены и корректно разобраны.
Типовые ошибки
File not found
→ нужный JSON-файл отсутствует. Создайте его по шаблону (config.example.provider.jsonили аналогичный).Error parsing JSON
→ синтаксическая ошибка в JSON. Пройдитесь по:- лишним/отсутствующим запятым;
- кавычкам;
- незакрытым объектам/массивам.
Barfinex Provider key not found
→ в блокеprovider.connectorsнет нужного коннектора.
→ добавьте объект сkeyиsecretдля нужного соединения (например, Binance).
3️⃣ Инициализация модулей NestJS
[Nest] ... LOG [InstanceLoader] ConfigModule dependencies initialized
Что это значит
NestJS-модули успешно проинициализировались, зависимости разрешены.
Типовые ошибки
Cannot find module '@barfinex/types'
→ проблема с зависимостями проекта илиtsconfig-paths. Проверьте:- установки пакетов;
- настройки
pathsвtsconfig.
Nest can't resolve dependencies
→ отсутствует импорт одного из модулей или нуженforwardRef.
→ проверьте, что все модули импортируются в правильном порядке.
4️⃣ Подключение к Redis
Connecting to Redis on localhost:6379 ✅ Connected to Redis successfully!
Что это значит
Barfinex Provider подключился к Redis, события и очереди доступны.
Типовые ошибки
ECONNREFUSED 127.0.0.1:6379
→ Redis не запущен или недоступен по указанному адресу.
→ проверьте:- запущен ли контейнер
redis(docker compose ps); - значение
REDIS_HOSTиREDIS_PORTв.env.
- запущен ли контейнер
Invalid TCP port
→ неверный номер порта. Убедитесь, что порт — число, а не строка с лишними символами.
5️⃣ Инициализация Binance API
🧩 BinanceService initializing... 🔑 connectorKey (truncated): oQ9Ulh... ✅ Binance API initialized successfully
Что это значит
Barfinex Provider нашёл настройки коннектора Binance и успешно создал клиент для API.
Типовые ошибки
| Сообщение | Причина | Что сделать |
|---|---|---|
Binance connector not found | Нет блока с "connectorType": "binance" | Добавить коннектор в конфиг |
Binance API credentials missing | Не указаны key/secret | Заполнить ключи в конфиге или .env |
Invalid Binance time response | Binance не отвечает или вернул некорректный ответ | Проверить доступ к api.binance.com и сеть |
6️⃣ Проверка времени Binance
🕒 Binance time: 2025-10-31 08:53:42, Local: 2025-10-31 08:53:41
Что это значит
Время на стороне Binance и локальное время синхронизированы, разница ≤ 1 секунды.
Это важно для правильной работы подписок и ордеров.
Типовые ошибки
FetchError
→ нет доступа к интернету или трафик до Binance блокируется.
→ попробуйте:- проверить сеть;
- использовать VPN;
- настроить
HTTPS_PROXY, если нужен прокси.
Error 418или другие коды блокировки
→ IP-адрес или ключи могли попасть в бан.
→ смените IP/ключи или уменьшите частоту запросов.
7️⃣ Готовность WebSocket и REST API
🚀 Barfinex Provider API is running on: https://localhost:8081/api 📑 Documentation: https://localhost:8081/docs 🔌 WebSocket (Socket.IO) at: https://localhost:8081/ws
Что это значит
Barfinex Provider полностью поднят:
- REST API доступен по
/api; - Swagger-документация — по
/docs; - WebSocket (Socket.IO) — по
/ws.
Типовые ошибки
EADDRINUSE: address already in use :8081
→ порт уже занят другим процессом.
→ освободите порт или измените его в.envиdocker-compose.yml.Cannot read property 'use' of undefined
→ ошибка в middleware или конфигурацииmain.ts.
→ проверьте кастомные фильтры, интерсепторы и middleware.
🧠 Best Practices для мониторинга
| Практика | Описание |
|---|---|
| Логировать ключевые стадии | ModuleInit, Config Loaded, Redis Connected, API Ready |
| Цветное логирование | Использовать nestjs-pino, winston или аналог |
| Health-endpoint | /api/health должен проверять Redis и Binance-пинг |
| Auto-retry Redis | Делать несколько попыток подключения с backoff |
| Pre-startup validation | Проверять ключи и структуру конфига до NestFactory.create() |
🧩 Пример успешного запуска
✅ HTTPS включён (сертификаты загружены) 🧩 Config path resolved to: ...config.json ✅ Configuration successfully loaded. ✅ Connected to Redis successfully! 🔑 connectorKey (truncated): oQ9Ulh... ✅ Binance API initialized successfully 🕒 Binance time: 2025-10-31 08:53:42, Local: 2025-10-31 08:53:41 ✅ BinanceService ModuleInit complete 🚀 Barfinex Provider API is running on: https://localhost:8081/api 📑 Documentation: https://localhost:8081/docs 🔌 WebSocket (Socket.IO) at: https://localhost:8081/ws
Если все строки со значком ✅ и без ошибок — Barfinex Provider готов к работе.
📎 Полезные команды
# Проверить доступность Redis redis-cli ping # Проверить доступ к Binance curl https://api.binance.com/api/v3/time # Проверить валидность JSON-конфига jq . config/config.provider.json # Посмотреть, кто занял порт 8081 (Windows) netstat -ano | find "8081" # Локальный запуск Barfinex Provider в dev-режиме (если поддерживается) npm run start:provider:dev
🧰 Troubleshooting Summary
| Симптом | Возможная причина | Решение |
|---|---|---|
Barfinex Provider key not found | Нет ключа в connectors | Добавить ключи Binance в конфиг |
ECONNREFUSED Redis | Redis не запущен | docker compose up redis |
API not initialized | BinanceService не успел стартовать | Проверить ключи и сетевое подключение |
Invalid JSON | Ошибка синтаксиса в конфиге | Проверить через jq и редактор |
| ✅ Всё зелёное | Ошибок нет | Сервис полностью готов |
📘 Резюме по логам
- Каждый лог соответствует стадии запуска Barfinex Provider.
- Метки
✅,🧩,🕒,🚀помогают визуально понять статус. - Ошибки Redis, конфигурации или Binance находятся и устраняются за минуты.
- Рекомендуется сохранять логи старта в CI/CD, чтобы автоматически контролировать успешность деплоя.
📊 Регистрация Barfinex Provider в Studio Barfinex
Зачем регистрировать Barfinex Provider в Studio
Даже если Barfinex Provider уже запущен и работает, важно подключить его к Studio Barfinex:
Визуальный контроль состояния
Видно, жив ли провайдер, есть ли ошибки, как чувствует себя подключение к бирже.Мониторинг данных в реальном времени
Графики, таблицы, события — вы сразу видите, что Barfinex Provider реально отдаёт данные.Диагностика и отладка стратегий
Можно убедиться, что сигналы, ордера и события проходят так, как вы ожидаете.Единая панель управления
Если у вас несколько Barfinex Provider-экземпляров (testnet, prod, разные биржи) — Studio позволяет управлять ими из одного места.
Общая схема подключения
- Поднимите Barfinex Provider по инструкции из раздела «Быстрый запуск Barfinex Provider».
- Убедитесь, что API Barfinex Provider доступен по HTTPS (например,
https://your-domain.com/api). - Зайдите в
https://studio.barfinex.comпод своей учётной записью. - Перейдите в раздел, отвечающий за управление провайдерами (например, «Источники данных» или «Barfinex Providers»).
- Создайте новый Barfinex Provider:
- укажите имя (например,
Binance Spot Prod); - добавьте URL API (базовый адрес Barfinex Provider);
- при необходимости добавьте описание и теги (testnet/prod и т.п.).
- укажите имя (например,
- Сохраните настройки и убедитесь, что статус Barfinex Provider стал «Online» (или аналогичный индикатор).
⚠️ Конкретные названия разделов и полей могут отличаться в зависимости от версии Studio.
Этот раздел отвечает за зачем и в общих чертах как, а детальная «кликабельная» инструкция со скриншотами может быть вынесена отдельно.
Что вы увидите после подключения
После регистрации Barfinex Provider в Studio:
- в интерфейсе появится карточка вашего Barfinex Provider с текущим статусом;
- будут доступны базовые метрики (аптайм, последние ошибки, версия сервиса);
- появится возможность просматривать ленты данных и события, генерируемые Barfinex Provider;
- станет проще понимать, где проблема — в стратегии, подключении к бирже или в инфраструктуре.
Итог по интеграции со Studio
- Barfinex Provider без Studio — это «чёрный ящик» на сервере.
- Barfinex Provider, подключённый к Studio — это прозрачный, наблюдаемый компонент в общей экосистеме Barfinex.
- Рекомендуется регистрировать каждый экземпляр Barfinex Provider (dev/stage/prod, разные биржи) для удобного мониторинга и поддержки.