Выбор ответа Middle Очереди, логи и микросервисы спрашивают часто обновлено
Trace id в микросервисах
Вопрос
Запрос прошёл через шлюз, сервис заказов, платежей и склад, и где-то упал. Как быстрее всего найти все связанные записи логов?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: По trace id, который передаётся между сервисами и пишется в лог. Сквозной идентификатор генерируется на входе, передаётся в заголовках (например traceparent по W3C Trace Context) и попадает в каждую строку структурированного лога.
Варианты ответа
- По времени запроса с точностью до секунды во всех сервисах
- По trace id, который передаётся между сервисами и пишется в логправильный ответ
- По IP-адресу клиента, который шлюз пробрасывает в каждый сервис
- Прочитать логи каждого сервиса целиком за минуту вокруг ошибки
Разбор
Сквозной идентификатор генерируется на входе, передаётся в заголовках (например traceparent по W3C Trace Context) и попадает в каждую строку структурированного лога. Тогда в Kibana, Grafana Loki или трассировке (Jaeger) все шаги находятся одним запросом. Поиск по времени и IP шумный: в ту же минуту идут тысячи запросов.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.