Настройка уведомлений о сбоях криптобота под ключ

Крипто-бот упал в 3 ночи. Пропустил 40 транзакций. Или завис на одной операции. Вы узнаёте об этом через 8 часов, когда откроете ноутбук. Это недопустимо. Мы знаем это по своему опыту: из-за пропущенного алерта однажды потеряли 0.5 ETH на неисполненных ордерах. Простой бота на 10 минут при активной

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1003
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1269
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1009

Крипто-бот упал в 3 ночи. Пропустил 40 транзакций. Или завис на одной операции. Вы узнаёте об этом через 8 часов, когда откроете ноутбук. Это недопустимо. Мы знаем это по своему опыту: из-за пропущенного алерта однажды потеряли 0.5 ETH на неисполненных ордерах. Простой бота на 10 минут при активной торговле может стоить сотни долларов. А наша настройка уведомлений обходится в разы дешевле. Правильная система закрывает три класса проблем: падение процесса, деградация производительности (бот работает, но медленно или пропускает события) и бизнес-аномалии (нет транзакций уже 2 часа — это может быть нормально, а может — сеть упала). Наш подход — настроить алерты так, чтобы вы знали о проблеме раньше, чем она ударит по кошельку.

Как мониторинг heartbeat предотвращает потерю средств?

Среднестатистический крипто-бот обрабатывает десятки транзакций в час. Один час простоя на 50-блочном отставании может стоить тысячи долларов упущенной прибыли или ликвидности. Без алертов вы не видите:

  • Разрыв WebSocket-соединения — бот «работает», но не получает события
  • Зависший обработчик транзакций — очередь блокируется, другие операции не проходят
  • Нехватку газа (ETH/SOL) — бот перестаёт отправлять свои транзакции
  • Медленный RPC-провайдер — увеличивается latency, растёт lag

Эти проблемы мы закрываем тремя уровнями мониторинга: heartbeat, метрики производительности и бизнес-аномалии.

Какую архитектуру алертов мы используем?

Мы строим систему на принципе dead man's switch: бот периодически отправляет сигнал «я жив», внешний сервис фиксирует отсутствие этого сигнала. Параллельно добавляем алерты на ключевые бизнес-метрики.

Healthcheck endpoint + внешний мониторинг

Самый надёжный подход: бот раз в 30 секунд вызывает внешний healthcheck-сервис (Healthchecks.io, Betterstack или собственный эндпоинт). Если сигнал не пришёл в течение 2 минут — алерт.

// В боте: heartbeat каждые 30 секунд class BotHealthReporter { private lastProcessedBlock: number = 0; private processedCount: number = 0; startHeartbeat(): void { setInterval(async () => { const payload = { status: 'ok', lastBlock: this.lastProcessedBlock, processed: this.processedCount, timestamp: Date.now(), rpcLatency: await this.measureRpcLatency(), }; // Betterstack/Healthchecks.io ping await fetch(process.env.HEALTHCHECK_PING_URL!, { method: 'POST', body: JSON.stringify(payload), }).catch(() => {}); }, 30_000); } } 

Healthchecks.io — простой dead man's switch сервис с бесплатным тарифом для 5 проектов. Он работает в 2 раза быстрее самописного поллинга на том же сервере.

Почему важна проверка chain lag?

Бот может технически работать, но обрабатывать блоки с отставанием из-за медленного RPC или перегруженного обработчика. Мы добавляем проверку lag:

async function checkChainLag(provider: JsonRpcProvider, lastProcessed: number): Promise<void> { const currentHead = await provider.getBlockNumber(); const lag = currentHead - lastProcessed; if (lag > 10) alerter.sendAlert('warning', `Lag: ${lag} блоков`); if (lag > 50) alerter.sendAlert('critical', `Критическое отставание: ${lag} блоков`); // Метрика для Grafana metrics.gauge('bot_chain_lag_blocks', lag); } 

Алерт на низкий баланс gas wallet

Баланс газового кошелька — частая причина внезапных остановок. Контролируем его в реальном времени:

async function checkGasBalance(provider: JsonRpcProvider, botAddress: string): Promise<void> { const balance = await provider.getBalance(botAddress); const balanceEth = parseFloat(formatEther(balance)); if (balanceEth < 0.05) { await alerter.sendAlert('warning', `Низкий баланс gas wallet: ${balanceEth.toFixed(4)} ETH\nАдрес: ${botAddress}` ); } if (balanceEth < 0.01) { await alerter.sendAlert('critical', `КРИТИЧНО: gas wallet почти пуст: ${balanceEth.toFixed(4)} ETH — бот скоро остановится` ); } } 

Process supervisor: автоперезапуск

Если бот упал — он должен автоматически подняться. Настраиваем PM2 для Node.js:

# ecosystem.config.js module.exports = { apps: [{ name: 'crypto-bot', script: 'dist/bot.js', restart_delay: 5000, max_restarts: 10, min_uptime: '10s', error_file: '/var/log/crypto-bot/error.log', out_file: '/var/log/crypto-bot/out.log', }] }; pm2 start ecosystem.config.js pm2 save 

PM2 сам отправляет уведомления через pm2-notify или интеграцию с Keymetrics. При каждом рестарте логируем и отправляем алерт через Telegram.

Рекомендуемые пороги алертов

Тип алерта Порог предупреждения Порог критический Рекомендуемый канал
Heartbeat 90 сек без сигнала 120 сек Telegram
Chain lag 10 блоков 50 блоков Telegram
Gas balance <0.05 ETH <0.01 ETH Telegram + Email
RPC latency >3 сек >5 сек Telegram

Что входит в работу

В услугу входит:

  • Полный аудит текущей архитектуры бота и выявление точек отказа
  • Интеграция healthcheck (Healthchecks.io / Betterstack) с настройкой heartbeat
  • Добавление алертов на chain lag, баланс газа, ошибки обработчиков
  • Настройка process supervisor (PM2/systemd) с авторестартом и логированием
  • Подключение каналов уведомлений (Telegram, PagerDuty, Slack и др.)
  • Документация по каждому типу алерта и порядку действий
  • Тестовый запуск с симуляцией отказов
  • Двухнедельная поддержка после внедрения

Процесс настройки под ключ

Мы выполняем настройку алертов в несколько этапов:

  1. Аудит архитектуры — разбираем текущий бот, точки отказа, метрики
  2. Выбор каналов — Telegram, PagerDuty, Slack, email (или комбинация)
  3. Интеграция healthcheck'а — внедряем heartbeat и настраиваем внешний сервис (Healthchecks.io / Betterstack / свой)
  4. Настройка бизнес-алертов — lag, gas, обработчик ошибок, process supervisor
  5. Тестовый запуск — симулируем отказы: обрываем RPC, выключаем газ, падаем с исключением
  6. Документация и обучение — передаём доступы к мониторингу, описываем что делать при каждом типе алерта
Этап Длительность Что получаете
Аудит и планирование 1-2 часа Схема точек отказа, список алертов
Интеграция healthcheck + код 2-4 часа Heartbeat, Telegram-бот, логи
Настройка supervisor 30 минут PM2 с авторестартом и алертами
Тестирование 1-2 часа Протокол тестов, исправление багов
Передача проекта 1 час Доступы, документация, рекомендации

Сроки: от 1 до 3 дней в зависимости от сложности бота и количества интеграций.

Почему выбирают нас

У нас 5+ лет опыта в разработке и поддержке крипто-ботов на Ethereum, Polygon, BNB Chain и Solana. Реализовали более 50 проектов. Мы не просто настраиваем уведомления — мы проектируем отказоустойчивую систему, которая минимизирует потери.

Гарантируем: после нашей настройки вы узнаете о любой проблеме в течение 2 минут, а бот автоматически восстановится после 9 из 10 падений.

Итоговый чеклист алертов

  • Отсутствие heartbeat > 2 минут → критический алерт
  • Отставание от chain head > 50 блоков → критический алерт
  • Баланс gas wallet < 0.05 ETH → предупреждение
  • N ошибок подряд в обработчике → критический алерт
  • Процесс перезапустился → информационный алерт
  • RPC latency > 5 секунд → предупреждение

Хотите такую же систему для своего бота? Получите консультацию. Свяжитесь с нами — оценим проект бесплатно.