Как разбираешь 5xx
Вопрос
На тесте API вернуло 502. Как ты будешь разбираться и что напишешь в баг-репорте?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Различаю 500 (ошибка приложения), 502 (прокси не получил нормальный ответ), 503 (сервис недоступен), 504 (таймаут шлюза)
Повторяю запрос, чтобы понять, стабильно или плавает
Ищу запрос в логах прокси и приложения по времени и request id
Проверяю, жив ли сервис: health-check, перезапуски контейнера
В баге: curl запроса, время, окружение, код и тело ответа, request id, частота воспроизведения
Что могут спросить следом
- Что такое request id и где его взять?
- Чем 502 отличается от 504 по причине?
- Что делать, если ошибка плавающая?
Разбор
Первое, что я делаю, это понимаю, кто ответил. 502 обычно отдаёт прокси, например nginx, когда бэкенд упал, перезапускается или вернул что-то нечитаемое. 504 тоже от прокси, но про таймаут: бэкенд думал слишком долго. 500 отдаёт само приложение. Потом повторяю запрос несколько раз: стабильная ошибка или плавающая. Дальше ищу этот запрос в логах по времени и по request id или trace id из заголовков ответа: в логах nginx видно, что upstream закрыл соединение, в логах приложения может быть исключение или перезапуск по нехватке памяти. Проверяю health-check и не перезапускался ли контейнер. В баг-репорт кладу curl запроса, окружение, точное время, код и тело ответа, request id, частоту воспроизведения и выдержку из логов, если нашёл.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.