Отслеживание между приложениями при весенней загрузке 2 и весенней загрузке 3

У меня есть несколько приложений Spring Boot, одно из которых использует Spring Boot 3, а другие используют Spring Boot 2. Мне нужно реализовать трассировку запросов между ними и между ними и Kafka. Однако я не нашел ничего о том, как интегрировать трассировку через Spring Cloud Sleuth в одно приложение и трассировку Micrometer в другое приложение. Есть ли способ получить идентификатор трассировки, сгенерированный Sleuth, в приложении, использующем трассировку микрометра и наоборот?

Я попытался подключить сыщика и микрометрическую трассировку в приложениях и отправить http-запросы в приложение spring boot 2, которое отправило сообщение в kafka, которое прочитало приложение spring boot 3, но traceId появился только в приложении spring boot 2.

Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
1
0
328
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

И Sleuth, и Micrometer Tracing поддерживают форматы распространения B3 и W3C. Sleuth использует B3 по умолчанию, Boot 3 настраивает Micrometer Tracing для использования W3C. Изменение этого поведения:

# Boot 2.x/Sleuth
spring.sleuth.propagation.type

или

# Boot 3.x/Micrometer Tracing
management.tracing.propagation.type

Установка этих параметров ничего не изменила, в том числе не изменила длину traceId в приложениях, приложения spring boot 3 печатают traceId длиной 32 символа и spring boot 2 длиной 16 символов, но спасибо за информацию для исследования

Eygonb 03.05.2023 04:46
Ответ принят как подходящий

Привет, мы описываем на вики-странице, как перейти с Boot 2.7 на Boot 3.0 (https://github.com/micrometer-metrics/tracing/wiki/Spring-Cloud-Sleuth-3.1-Migration-Guide). Вы должны указать 2 типа распространения на стороне Boot 2.7 (W3C, B3), и Boot 3.0 автоматически подберет вариант W3C.

Поскольку Boot 3.0 запрещает объединение диапазонов и устанавливает идентификатор трассировки равным 128 битам, установите ту же конфигурацию на стороне Sleuth.

spring.sleuth.traceId128=true
spring.sleuth.supportsJoin=false

Другие вопросы по теме

Похожие вопросы

Как установить Confluent Schema Registry с помощью диаграммы управления Bitnami для внешней Kafka?
Как правильно использовать коннектор приемника Spark -> Kafka -> JDBC с Avro?
Как использовать io.apicurio.registry.utils.converter.AvroConverter в Kafka Connect, созданном Strimzi?
Проблема с подключением к контейнеру Kafka из другого контейнера
Задание Apache flink ничего не печатает на стандартный вывод и не отправляет в тему приемника Kafka
Мой потребитель Kafka повторяет попытку 10 раз ненормально и останавливает повторную попытку, просто добавляя журнал MDC?
Как правильно сопоставить сообщение с объектом со «схемой» и «полезной нагрузкой» в структурированной потоковой передаче Spark?
Ошибка при регистрации схемы jackson avro с помощью клиента реестра объединенной облачной схемы
Quarkus kafka установить имя темы из файла конфигурации
Какая версия spring-kafka совместима с spring-boot 2.7.9? весна-кафка 3.0.5 терпит неудачу