Мониторинг доступности REST API: ping и healthcheck

Проверка работы ваших сервисов — автоматически и вовремя

Зачем мониторить REST API?

Даже если ваш сайт работает, это не значит, что работает API. Ошибки в маршрутах, зависания в БД, неправильные заголовки или сбой reverse proxy могут привести к тому, что клиенты получат ошибку — а вы об этом не узнаете.

Подход 1: Простой ping

Ping — это просто HTTP-запрос, отправляемый через равные промежутки времени. Например, каждую минуту мы проверяем URL https://api.example.com/health.

Ответ должен быть:

  • Код ответа 200
  • По возможности: JSON с информацией о статусе

Если код отличается от 200 или нет ответа, отправляется алерт.

Пример healthcheck-эндпоинта

# Flask (Python)
@app.route("/health")
def health():
    return {"status": "ok"}, 200

Этот эндпоинт не должен зависеть от авторизации, кэша, сторонних API или нестабильных источников данных.

Как добавить мониторинг

  1. Создайте монитор в панели OKchecker, укажите URL /health
  2. Выберите интервал проверки (например, каждые 60 секунд)
  3. Настройте алерты: Email, Telegram, Slack

А что если ответ медленный?

Можно задать таймаут проверки: например, если нет ответа за 5 секунд — считаем, что API недоступен. Также можно отслеживать время ответа и строить графики.

Дополнительно: авторизация

Если API требует токен, укажите его в заголовках. Например:

Authorization: Bearer xxxxxx

Советы

  • Проверяйте не только /health, но и критичные маршруты (например, /api/v1/orders)
  • Добавьте проверку ключевых слов в ответе
  • Периодически тестируйте отключение API вручную

Вывод

Мониторинг REST API — это просто, но критически важно. Лучше узнать о проблеме первым, чем от клиента. Наш сервис поможет отслеживать всё, что важно, и реагировать быстро.

Начать мониторинг