Проблема трассировки микрометра Springboot 3JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема трассировки микрометра Springboot 3

Сообщение Anonymous »

Мы используем Springboot 3.1.4, и я пытаюсь использовать подход на основе Micrometer для распределенной трассировки приложения. Я включил правильные зависимости build.gradle, но трассировки работают только для контрольных точек работоспособности и ничего больше. Посмотрев глубже, я заметил странное поведение. Я протестировал 2 потока:
Поток 1 -> вызов REST службы 1 -> метод публикации JMS в службу 2
Поток 2 -> вызов REST метода службы 2
В обоих случаях входящая служба получила PropagatedSpan с трассировкойFlags=00. В этом случае никакие трассировки/диапазоны не были записаны/отправлены.
({opentelemetry-trace-span-key=PropagatedSpan{ImmutableSpanContext{traceId=a2ea0716a45d02a490d7cef097acdb9a, spanId=adb8f982d4294b13, traceFlags=00, TraceState=ArrayBasedTraceState{entries=[]}, Remote=false, valid=true}}, opentelemetry-baggage-key={}, otelTraceContext=ImmutableSpanContext{traceId=a2ea0716a45d02a490d7cef097acdb9a, spanId=adb8f982d4294b13, TraceFlags=00, TraceState=ArrayBasedTraceState{entries=[]}, Remote=false, valid=true})
Однако, когда служба 2 получила запрос от службы 1 в потоке 1, она получила диапазон в виде SDKSpan с трассировкойFlags=01. Когда это происходит, я вижу захваченные трассировки/диапазоны для службы 2 (не службы 1).
({opentelemetry-baggage-key={}, opentelemetry-trace-span-key=SdkSpan{traceId=c92ee058c19d5288d6cc72d2bb9c2a3b, spanId=5797df5b5620f02d, родительскийSpanContext=ImmutableSpanContext{traceId=00000000000000000000000000000000, spanId=0000000000000000, трассировкаFlags=00, TraceState=ArrayBasedTraceState{entries=[]}, Remote=false, valid=false}, name=, kind=SERVER, атрибуты=null, status=ImmutableStatusData{statusCode=UNSET,description=}, totalRecordedEvents=0, totalRecordedLinks=0, startEpochNanos=1727214899985765169, endEpochNanos=0}, otelTraceContext=ImmutableSpanContext{traceId=c92ee058c19d5288d6cc72d2bb9c2a3b, spanId=5797df5b5620f02d, traceFlags=01, TraceState=ArrayBasedTraceState{entries=[]}, Remote=false, valid=true}
Есть ли способ заставить входящую трассировку/диапазон использовать SDKSpan вместо PropagatedSpan, который, кажется, блокирует даже созданные мной пользовательские диапазоны?
Есть ли другой способ решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/790 ... cing-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»