Как стать автором
Обновить

Комментарии 6

Вроде как traceId передается в HTTP заголовке, и если его нет то вы и получите два трейса. Отсюда решение - проверить что этот заголовок передается.

Что очень беспокоит, как много шагов нужно сделать, чтобы это включить. Статья такая толстая, что тянет на докторскую. Было бы круто иметь какой-то стартер, который бы с помощью AOP бегал по типично сконфигурированному приложению и добавлял всё, что нужно. Чтобы ты мог из Initializr сгенерить проект, прописать где-нибудь шаблон для названия traceId, и оно всё сразу заработало. Может быть, что-то такое уже есть?

traceId можно передавать между сервисами через заголовок traceparent  https://www.w3.org/TR/trace-context/#traceparent-header
а если нужно попроще (и если сервисов много разных - soap, rest, grpc, kafka, webflux и т.д.), то вместо micrometer можно использовать opentelemetry-javaagent.jar https://opentelemetry.io/docs/instrumentation/java/automatic/

А теперь лучше сразу запланируйте переход на jaeger/opentelemetry :)

Крутая статья, крутая работа.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий