Выбор ответа Middle Очереди, логи и микросервисы спрашивают часто обновлено

Trace id в микросервисах

Вопрос

Запрос прошёл через шлюз, сервис заказов, платежей и склад, и где-то упал. Как быстрее всего найти все связанные записи логов?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: По trace id, который передаётся между сервисами и пишется в лог. Сквозной идентификатор генерируется на входе, передаётся в заголовках (например traceparent по W3C Trace Context) и попадает в каждую строку структурированного лога.

Варианты ответа

  1. По времени запроса с точностью до секунды во всех сервисах
  2. По trace id, который передаётся между сервисами и пишется в логправильный ответ
  3. По IP-адресу клиента, который шлюз пробрасывает в каждый сервис
  4. Прочитать логи каждого сервиса целиком за минуту вокруг ошибки

Разбор

Сквозной идентификатор генерируется на входе, передаётся в заголовках (например traceparent по W3C Trace Context) и попадает в каждую строку структурированного лога. Тогда в Kibana, Grafana Loki или трассировке (Jaeger) все шаги находятся одним запросом. Поиск по времени и IP шумный: в ту же минуту идут тысячи запросов.

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

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