Диагностика недоступного API

API недоступен: как найти уровень сбоя

Если endpoint не отвечает, уходит в таймаут или недоступен только для части клиентов, проблему нужно искать последовательно: от DNS и соединения до прокси, приложения и его зависимостей.

Диагностика недоступного API и мониторинг endpoint-ов
Что означает недоступность API
Недоступный API — это не один конкретный вид ошибки. Запрос может не дойти до сервера, оборваться на прокси, превысить таймаут или завершиться внутри приложения.

API считается недоступным, когда клиент не может получить ожидаемый ответ от нужного endpoint-а. Это может проявляться как ошибка DNS, отказ соединения, проблема TLS, таймаут, HTTP-ошибка или неожиданное закрытие соединения.

Сайт при этом может продолжать открываться. Например, статическая главная страница загружается через CDN, а авторизация, личный кабинет, оплата или мобильное приложение уже не работают из-за недоступности API.

Проблема может затрагивать весь API, отдельный домен, один маршрут, конкретный HTTP-метод или только часть пользователей. Поэтому недостаточно проверить один произвольный URL и сделать вывод о состоянии всей системы.

Важно определить последний уровень, до которого запрос проходит успешно. Если имя домена не разрешается, до приложения запрос вообще не доходит. Если соединение устанавливается, но ответ не приходит, нужно проверять прокси, приложение, базу данных и внешние зависимости.

Внешний мониторинг фиксирует пользовательский результат: доступен ли endpoint, сколько занял запрос, вернулся ли HTTP-статус и когда работа восстановилась. Внутреннюю причину нужно сопоставлять с логами и метриками инфраструктуры.

Как может проявляться проблема
  • Имя домена API не разрешается через DNS.
  • Соединение с адресом или портом отклоняется.
  • TLS-соединение не устанавливается из-за сертификата или настроек протокола.
  • Endpoint слишком долго не отвечает и превышает таймаут.
  • Прокси или балансировщик не может связаться с приложением.
  • Недоступен только один маршрут или HTTP-метод.
  • API работает внутри инфраструктуры, но недоступен извне.
  • API доступен из одного региона или сети, но не из другого.
  • Сайт открывается, а кабинет, оплата или мобильное приложение не работают.
  • После релиза часть экземпляров отвечает, а часть возвращает ошибки.
Что даёт отдельный мониторинг API
Он показывает недоступность endpoint-а независимо от состояния главной страницы сайта и помогает определить точное время пользовательского сбоя.
Отдельный контроль endpoint-ов
Авторизацию, профиль, заказ, оплату и публичные интеграции можно проверять независимо друг от друга.
Фиксация таймаутов
В истории остаются не только HTTP-ошибки, но и случаи, когда соединение или ожидание ответа превысило установленное время.
Хронология восстановления
Можно увидеть начало неуспешных проверок, продолжительность инцидента и момент возвращения endpoint-а в рабочее состояние.
Как диагностировать недоступный API
Проверяйте путь запроса по уровням. Это помогает не искать ошибку приложения, когда запрос останавливается ещё на DNS, TLS или прокси.
Шаг 1
Зафиксируйте точный запрос

Запишите URL, HTTP-метод, время ошибки, заголовки и ожидаемый результат. Убедитесь, что проверяется именно проблемный endpoint, а не соседний служебный маршрут.

Шаг 2
Проверьте DNS

Убедитесь, что домен разрешается в ожидаемый адрес и не осталась устаревшая запись после переноса, изменения балансировщика или переключения инфраструктуры.

Шаг 3
Проверьте соединение и TLS

Определите, устанавливается ли соединение с нужным портом и проходит ли TLS. Ошибка сертификата, несовпадение имени или проблема протокола делают API недоступным ещё до HTTP-запроса.

Шаг 4
Проверьте прокси и маршрутизацию

Сверьте маршрут, домен, префикс API, правила ingress или reverse proxy и наличие доступных экземпляров приложения за балансировщиком.

Шаг 5
Проверьте приложение

Посмотрите, принимает ли процесс запросы, не перезапускается ли он и нет ли в логах исключений, зависаний или исчерпания рабочих процессов.

Шаг 6
Проверьте внутренние зависимости

API может не отвечать из-за базы данных, Redis, очереди, хранилища или внешнего сервиса. Сопоставьте время недоступности с состоянием этих компонентов.

Шаг 7
Сравните разные endpoint-ы

Проверьте healthcheck, авторизацию и бизнес-маршрут отдельно. Успешный служебный ответ не гарантирует, что endpoint с обращением к базе данных действительно работает.

Шаг 8
Сопоставьте сбой с изменениями

Проверьте релизы, миграции, настройки DNS, сертификаты, правила прокси и изменения сетевой политики, выполненные перед началом проблемы.

Как отличить разные уровни недоступности
Одинаковая жалоба «API не работает» может означать совершенно разные неисправности. Тип внешней ошибки помогает сузить область поиска.

Если домен не разрешается, проблема находится на уровне DNS или используемого DNS-резолвера. Нужно проверить записи, срок их действия, делегирование домена и недавние изменения адресов.

Если DNS работает, но соединение отклоняется, проверьте правильность порта, работу процесса, сетевые правила, firewall, балансировщик и наличие маршрута до приложения.

Если соединение устанавливается, но TLS завершается ошибкой, проверьте срок действия сертификата, соответствие домену, цепочку доверия и конфигурацию HTTPS на прокси.

Если запрос уходит в таймаут, это не всегда означает полную недоступность сервера. Приложение могло принять запрос, но зависнуть при обращении к базе данных, внешнему API, очереди или файловому хранилищу.

Если прокси возвращает 502, он обычно не получил корректный ответ от приложения. При 503 сервис или балансировщик может сообщать, что сейчас нет готовых экземпляров или система временно не принимает запросы.

Если API возвращает 500, запрос дошёл до приложения, но его обработка завершилась внутренней ошибкой. Такой случай относится уже не к сетевой недоступности, а к ошибке выполнения.

Если один endpoint работает, а другой нет, проверяйте различия в маршрутах, правах доступа, коде обработчика и используемых зависимостях. Общий healthcheck может не обращаться к базе данных и поэтому оставаться успешным.

Если API работает из внутренней сети, но недоступен снаружи, вероятная область поиска — публичный DNS, ingress, reverse proxy, firewall, WAF или маршрутизация.

Если проблема возникает только у части клиентов, сравните сети, регионы, версии приложений, используемые домены, авторизацию и параметры запроса. Это может быть частичная, а не полная недоступность.

После восстановления проверьте не только служебный endpoint, но и реальные пользовательские маршруты. Один успешный healthcheck не доказывает исправность авторизации, оплаты или операций с данными.

При плавающей проблеме ручной запрос может попасть в удачный промежуток. История регулярных проверок помогает увидеть повторяемость и сопоставить её с нагрузкой, перезапусками и инфраструктурными событиями.

UpWatch не подключается к внутренним логам и не определяет причину автоматически. Он фиксирует внешний симптом, время сбоя и восстановление, а диагностические выводы нужно подтверждать данными приложения и инфраструктуры.

Частые вопросы
Почему сайт открывается, а API недоступен?

Сайт и API могут обслуживаться разными доменами, прокси, приложениями и инфраструктурой. Статическая страница может загружаться через CDN, пока backend, база данных или отдельный API-домен уже недоступны.

Чем недоступность API отличается от ошибки API?

При недоступности клиент может вообще не получить HTTP-ответ из-за DNS, соединения, TLS или таймаута. Ошибка API обычно означает, что ответ получен, но его статус или содержимое не соответствуют ожидаемому результату.

Почему healthcheck работает, а бизнес-endpoint не отвечает?

Простой healthcheck может проверять только запуск процесса. Бизнес-endpoint дополнительно обращается к базе данных, очередям, хранилищу и другим сервисам, один из которых может быть недоступен.

Что означает таймаут API?

Клиент не получил полный ответ за установленное время. Причиной может быть сеть, перегрузка, зависание приложения, медленная база данных или внешняя зависимость.

Почему API недоступен только извне?

Если внутренний запрос работает, а публичный нет, нужно проверять внешний DNS, балансировщик, ingress, reverse proxy, WAF, firewall и публичную маршрутизацию.

Почему API недоступен только для части пользователей?

Причина может зависеть от сети, региона, DNS-резолвера, версии клиента, авторизации, конкретных данных или попадания запросов на разные экземпляры приложения.

Может ли API стать недоступным после релиза?

Да. Причиной могут быть неприменённые миграции, неверная конфигурация, изменение маршрута, несовместимость версий, отсутствие готовых экземпляров или ошибка нового кода.

Можно ли проверять API не только GET-запросом?

Да. В HTTP-мониторе UpWatch можно настраивать метод запроса и параметры проверки.

Если API возвращает 200, но данные неправильные, считается ли он доступным?

Для обычной HTTP-проверки успешный статус означает успешный HTTP-ответ. Чтобы контролировать ожидаемые данные, нужно дополнительно использовать JSON-проверку содержимого.

UpWatch покажет точную причину недоступности?

Нет. UpWatch фиксирует внешний результат проверки, ошибку, таймаут, длительность, историю запусков и восстановление. Причину нужно искать в логах, метриках и конфигурации инфраструктуры.

Какие endpoint-ы нужно мониторить?

В первую очередь авторизацию, профиль пользователя, заказ, оплату, критичные интеграции и публичные API. Служебный healthcheck полезен, но его недостаточно для контроля бизнес-функций.

Связанные сценарии
Мониторинг API

Как настроить регулярные HTTP-проверки endpoint-ов, методов, статусов и таймаутов.

Ошибка API

Как разбирать HTTP-ошибки, если endpoint отвечает, но возвращает неуспешный статус.

Проверки JSON

Как контролировать ожидаемые поля и значения, если одного HTTP-статуса недостаточно.

Ошибка 502

Почему прокси не может получить корректный ответ от приложения.

Ошибка 503

Почему сервис может временно не принимать запросы.

Ошибка HTTP 500

Как искать внутреннюю ошибку приложения, базы данных или конфигурации.

Контролируйте доступность критичных endpoint-ов
Добавьте авторизацию, профиль, оплату и другие важные API-маршруты, чтобы фиксировать недоступность, таймауты и момент восстановления.