Это означает, что не все сервисы будут переведены на более новые версии одновременно.
От Openracing отказались уже много лет
https://github.com/opentracing-contrib/ ... ing-jaeger. В результате он несовместим с Java 21 и Spring Boot 3.5. Рекомендуется перейти на Micrometer и Opentelemetry.
Предположим, что приложение -api находится на Opentracing и имеет следующую конфигурацию:
Код: Выделить всё
opentracing:
spring:
web:
ignoreAutoConfiguredSkipPatterns: true
jaeger:
service-name: ${spring.application.name}
enabled: true
enable-b3-propagation: true
probabilistic-sampler:
sampling-rate: 0.1 # 10% sampling
http-sender:
url: http://${JAEGER_HOST}:14268/api/traces
Код: Выделить всё
management:
tracing:
enabled: true
propagation:
type: b3_multi
sampling:
probability: 0.1
otlp:
tracing:
endpoint: http://${JAEGER_HOST}:4317
transport: grpc
otel:
propagators: [b3multi]
resource:
attributes:
service:
name: ${spring.application.name}
traces:
sampler: custom
- В трассировке находятся диапазоны, связанные с безопасностью: цепочка фильтров безопасности до, аутентификация токена-носителя, запрос авторизации, защищенный запрос, цепочка фильтров безопасности после. Я не вижу никакой пользы от их наличия. Может быть удалено?
- Нет следов БД. С помощью Opentracing можно увидеть всю трассировку служб до запроса к БД. В подходе Opentelemetry такого промежутка нет. Возможно, что-то настроено неправильно, но это все равно вызывает беспокойство.
- не создавая никаких следов. Вы можете увидеть трассировки только при настройке Management.tracing.sampling.probability: 1.0. Однако я хочу оставить значение 0,1 и принудительно выполнить трассировку с использованием значения заголовка, упомянутого выше. Есть несколько конфигураций, пытающихся это исправить com.example.tracing.modern.configuration.TracingConfig.
Код: Выделить всё
X-B3-Sampled: 1 - При использовании Opentracing при возникновении ошибки я видел значок предупреждения рядом с интервалом. Сейчас оно не отображается. Конфиг пытается это исправить com.example.tracing.modern.configuration.JaegerErrorTagFilter. К сожалению, поведение не такое, как ожидалось (мне бы хотелось иметь значки по всей цепочке).
Я подготовил "работающий" пример для воспроизведения:
https://github.com/OlegZavrazhin/jaeger ... pentracing
Как начать:
Код: Выделить всё
docker-compose up --buildКод: Выделить всё
test-endpoints.shСпросите меня, если вам нужно что-то уточнить.
P.S. Я гуглил и читал различные документы, пробовал несколько подходов, но безуспешно. Буду признателен за любые образцы и руководства.
Подробнее здесь: https://stackoverflow.com/questions/798 ... -to-jaeger
Мобильная версия