Мониторинг доступности API: гайд
Коротко. мониторинг сайтов API документацию — это регулярные автоматические проверки доступности и корректности ответов ваших эндпоинтов. Настройте health-check, который Ping инструмент каждую минуту, проверяйте код ответа и время отклика, и подключите алерты в Telegram, Slack или webhook. В enterno.io можно бесплатно завести до 10 HTTP-мониторов с проверкой раз в минуту и мгновенными уведомлениями о падении.
Зачем мониторить API отдельно от сайта
API падает иначе, чем сайт. Главная страница может отвечать 200 OK, пока бэкенд-эндпоинт /api/v1/orders уже возвращает 500 из-за упавшей очереди или исчерпанного пула соединений к базе. Пользователь видит белый экран, а ваш аптайм-дашборд по корню домена — зелёный. Поэтому API-эндпоинты нужно мониторить как отдельные цели.
Правило: мониторьте то, что важно для пользователя, а не то, что удобно проверять. Если ваш продукт — это API, его SLA измеряется по ключевым эндпоинтам, а не по статической landing-странице.
Health-check эндпоинт
Первый шаг — выделенный health-check, который не просто отвечает 200, а реально проверяет зависимости (БД, Redis, внешние сервисы). Простейшая проверка из терминала:
curl -sS -o /dev/null -w "%{http_code} %{time_total}s\n" https://api.example.com/health
Эта команда печатает HTTP-код и полное время ответа — то, что и должен фиксировать монитор каждую минуту.
Подробнее о проектировании таких эндпоинтов — в статье health-check эндпоинты.
Создание монитора через API
В enterno.io есть REST API (v4), через который монитор можно завести программно — удобно для IaC и автодеплоя. Концептуально это выглядит так:
curl -X POST https://enterno.io/api/v4/monitors \
-H "X-API-Key: ent_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"url": "https://api.example.com/health",
"check_type": "http",
"interval_minutes": 1,
"expected_code": 200,
"notify_telegram": true
}'
Один POST-запрос создаёт монитор с проверкой раз в минуту и ожидаемым кодом 200 — дальше платформа сама пингует эндпоинт и шлёт алерт при отклонении.
Что проверять
- HTTP-статус — ожидаемый код (200, 201 или кастомный для health-эндпоинта).
- Время ответа — латентность p50/p95, а не только «доступен/нет».
- Тело ответа — наличие ключевого поля (например
"status":"ok"), а не пустой 200. - проверку SSL — срок до истечения, цепочка, протокол.
- Зависимости — БД, кэш, внешние API, от которых зависит эндпоинт.
| Параметр | Зачем | Порог тревоги |
|---|---|---|
| HTTP-код | Базовая доступность | не равен ожидаемому (напр. ≠ 200) |
| Время ответа | Деградация производительности | p95 > 1000 мс |
| SSL-сертификат | Истечение TLS | < 14 дней до expiry |
| Тело ответа | Корректность данных | нет ожидаемого поля JSON |
Интервалы и регионы
Для критичных API ставьте интервал 1 минуту — это минимизирует MTTD (время до обнаружения). Проверки из нескольких регионов (RU, EU, US) отсекают ложные срабатывания из-за сетевых проблем у одного провайдера: если эндпоинт недоступен только из одного региона — это, скорее, проблема маршрутизации, а не вашего сервиса.
Алерты
Падение бесполезно ловить, если о нём никто не узнает. enterno.io поддерживает каналы: Telegram, Slack, webhook, PagerDuty и Jira. Webhook позволяет встроить алерт в вашу собственную систему инцидентов. О том, как не утонуть в шуме, — в гайде лучшие практики алертинга.
Не настраивайте алерт на единичный сбой. Используйте порог в 2–3 последовательных провала перед открытием инцидента — это убирает кратковременные сетевые флапы.
SLA и метрики
Из истории проверок считаются аптайм (% времени доступности) и MTTR (среднее время восстановления). Эти цифры — основа SLA-отчётов для клиентов. Какие именно метрики важны для API — разобрано в статье метрики производительности API.
Автоматизация для агентов и LLM
Если вы работаете в Claude, Cursor или Zed, мониторами можно управлять через MCP-сервер прямо из ассистента. Подробности — в материале о MCP-сервере для мониторинга.
Частые вопросы
Чем мониторинг API отличается от мониторинга сайта?
API-мониторинг проверяет конкретные эндпоинты, коды ответа и структуру JSON, тогда как мониторинг сайта обычно ограничивается доступностью главной страницы. API может вернуть 500 при зелёном статусе сайта.
Как часто проверять API?
Для критичных сервисов — раз в минуту. Это минимальный интервал на бесплатном плане enterno.io и оптимальный баланс между скоростью обнаружения и нагрузкой.
Нужен ли отдельный health-check эндпоинт?
Да. Выделенный /health, проверяющий зависимости, надёжнее, чем мониторинг бизнес-эндпоинтов с побочными эффектами (например, создание заказа).
Можно ли мониторить API за аутентификацией?
Лучше иметь публичный health-check без авторизации, который отражает состояние системы, но не раскрывает данные. Так монитор не нужно снабжать секретами.
Начните мониторить API
Заведите первый HTTP-монитор бесплатно: перейти к мониторам. До 10 целей с проверкой раз в минуту, алертами в Telegram/Slack и историей для SLA. Базовые принципы аптайм-мониторинга — в общем гайде по uptime.