Проблема трассировки микрометра 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

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