Налаштування сповіщень про збої криптобота під ключ

Крипто-бот упав о 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 секунд → попередження

Хочете таку ж систему для свого бота? Отримайте консультацію. Зв'яжіться з нами — оцінимо проєкт безкоштовно.