Мониторинг интернет-магазина в пик нагрузки на распродаже
Коротко. Распродажа удваивает или утраивает трафик за минуты, и именно тогда магазин чаще всего падает — а каждая минута простоя стоит реальных заказов. Подготовка к пику: короткий интервал проверок (30 секунд), мониторинг сайтов критичного пути (главная → каталог → корзина → оплата), health-эндпоинт с проверкой зависимостей и мгновенные алерты. Цель — поймать деградацию до того, как покупатель уйдёт к конкуренту.
Почему магазины падают именно в пик
В обычный день инфраструктура работает с запасом, и проблемы маскируются. Под нагрузкой распродажи всплывают узкие места: исчерпание пула соединений к БД, медленный кэш, лимиты платёжного шлюза. Деградация почти всегда начинается с роста времени отклика, а не с резкого падения — поэтому мониторинг latency важнее, чем простая проверка «жив/мёртв».
Если вы готовите распродажу, считайте мониторинг частью инфраструктуры, а не опцией. Настроенный заранее монитор стоит дешевле одной минуты простоя в час пик.
Критичный путь покупки
Недостаточно проверять только главную страницу. Покупка — это цепочка, и сломаться может любое звено:
- Главная и каталог — доступность и время отклика витрины.
- Карточка товара — корректная отдача цены и наличия.
- Корзина — добавление и пересчёт без ошибок.
- Оформление и оплата — доступность платёжного шлюза и SSL на странице оплаты.
Health-эндпоинт для магазина
Заведите служебный эндпоинт, который под капотом проверяет, что магазин действительно может принять заказ: жива ли БД, отвечает ли платёжный провайдер, не переполнена ли очередь. Пример:
# Health-check магазина с проверкой ключевых зависимостей
curl -s -w "\nHTTP %{http_code} | %{time_total}s\n" \
https://shop.example.com/health
# Ожидаемый JSON и код при готовности принимать заказы:
# {"db":"ok","payment":"ok","queue":"ok"}
# HTTP 200 | 0.118s
Добавьте этот URL в enterno.io как HTTP-монитор с ожидаемым кодом 200. Если зависимость падает, эндпоинт вернёт 503 — и вы получите алерт раньше первой жалобы.
Что мониторить на каждом шаге
| Шаг пути | Что проверять | Сигнал проблемы |
|---|---|---|
| Главная / каталог | HTTP-код и время отклика витрины | Рост latency, 5xx |
| Карточка товара | Отдача цены и наличия | Таймаут, пустой ответ |
| Корзина | Health-эндпоинт с проверкой БД | 503, ошибки пересчёта |
| Оплата | Доступность шлюза и SSL | истёкший сертификат сертификат, недоступность PSP |
Интервал и мультирегион в пик
На распродаже секунды решают. Бесплатный тариф даёт интервал 5 минут — это допустимо для фона, но для часа пик нужен интервал 30 секунд на платном тарифе. Мультирегиональные проверки (РФ, ЕС, США) помогают отличить локальную проблему CDN от реального отказа бэкенда.
Алерты, которые увидят вовремя
- Telegram/Slack — для дежурной команды в реальном времени.
- PagerDuty — телефонный вызов для критичных мониторов оплаты.
- webhook — для автоматических действий (масштабирование, переключение).
Настройте порог инцидента так, чтобы единичный сетевой сбой не будил всю команду, но реальная деградация фиксировалась за секунды.
После распродажи: разбор
История инцидентов и графики времени отклика показывают, где именно был узкий путь. Это база для подготовки к следующему пику: усилить кэш, увеличить пул соединений, заранее прогреть CDN.
FAQ
Какой интервал нужен на распродаже?
30 секунд для критичного пути оплаты. Пятиминутный интервал пропустит короткие, но дорогие инциденты.
Достаточно ли мониторить только главную страницу?
Нет. Главная может отвечать, пока корзина или оплата сломаны. Мониторьте весь путь покупки.
Как поймать деградацию до полного падения?
Следите за временем отклика. Рост latency — ранний сигнал, который опережает 5xx-ошибки.
Зачем отдельный health-эндпоинт?
Он проверяет реальную готовность принять заказ — БД, оплату, очередь — а не только то, что веб-сервер жив.
Подготовьте мониторинг до распродажи на странице мониторинга аптайма. Полезное: гайд по мониторингу, мультирегиональный мониторинг, контроль SSL и быстрая проверка сайта.