Ответ вслух Junior Очереди, логи и микросервисы обновлено

Как ты используешь логи в тестировании

Вопрос

Как ты используешь логи, когда находишь баг в API?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Когда API вернуло ошибку, я беру из заголовков ответа request id или trace id и ищу по нему в системе логов, у нас это Kibana, в других проектах Grafana Loki. Если идентификатора нет, ищу по времени и по id заказа или пользователя.

Что должно прозвучать в ответе

  • Нахожу запрос по trace id или request id из ответа, иначе по времени и id сущности

  • Смотрю ERROR и WARN, стектрейс, на каком сервисе и шаге упало

  • Прикладываю к баг-репорту выдержку и trace id

  • Проверяю сами логи: уровни, отсутствие паролей и персональных данных

  • Инструменты: Kibana, Grafana Loki, Sentry, kubectl logs, tail и grep

Что могут спросить следом

  • Что делать, если в ответе нет request id?
  • Что такое структурированные логи?
  • Какие баги можно найти в самих логах?

Разбор

Когда API вернуло ошибку, я беру из заголовков ответа request id или trace id и ищу по нему в системе логов, у нас это Kibana, в других проектах Grafana Loki. Если идентификатора нет, ищу по времени и по id заказа или пользователя. Смотрю записи ERROR и WARN, стектрейс, на каком сервисе и на каком шаге упало, и что было перед этим. В баг кладу trace id и короткую выдержку, тогда разработчик сразу видит причину. Сами логи тоже тестирую: ошибки пишутся с уровнем ERROR, а не INFO, иначе алерт не сработает; в логах нет паролей, токенов, номеров карт; у каждой строки есть trace id. На стенде без системы логов использую docker logs, kubectl logs или tail -f с grep на сервере.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.