Как создать контекст, используя TraceId в открытой телеметрииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как создать контекст, используя TraceId в открытой телеметрии

Сообщение Anonymous »

Я пытаюсь связать все промежутки, созданные в следующей цепочке, с одним и тем же контекстом трассировки/traceId путем распространения контекста:
service1 -> очередь aws sqs -> service2
Авто. распространение контекста не работает с aws sqs и aws sdk v2 atm (https://github.com/open-telemetry/opent ... ssues/3684), хотя AwsTraceHeader фактически установлен в сообщении sqs, я об этом нужно явно позаботиться с помощью

[*]service1: запись идентификатора трассировки в пользовательский атрибут сообщения sqs

Код: Выделить всё

traceId=Span.current().getSpanContext().getTraceId()
[*]service2: чтение идентификатора трассировки из пользовательского атрибута сообщения sqs TraceId и перезапись текущего значения span.traceId/по существу создание контекста обслуживания1
< /ul>
Однако теперь неясно, как на самом деле перезаписать span.traceId в диапазоне, созданном сервисом2, что сбивает с толку, потому что, например, с Golang это кажется простым: как создать диапазон opentelemetry из stringtraceid
Я вижу только геттеры, например. Span.current().getSpanContext().getTraceId()
но без методов установки или построения.
Обновление:
Даже создав новый диапазон и сделав его текущим (не уверен, что это идет в правильном направлении), трассировщик.spanBuilder не предлагает установщики для TraceId AFAIU)

Код: Выделить всё

@Inject
io.opentelemetry.api.trace.Tracer tracer;

Span consumeMessageSpan = tracer.spanBuilder("consumeMessage").startSpan();

consumeMessage.makeCurrent();
Обновление 2
Этот фрагмент из официальной документации отеля выглядит многообещающе

Чтобы связать диапазоны из удаленных процессов, достаточно установить
Удаленный контекст в качестве родительского.

Код: Выделить всё

Span childRemoteParent = tracer.spanBuilder("Child").setParent(remoteContext).startSpan();
Однако также нет примеров или идей о том, как создать RemoteContext и установить для TraceId значение, извлеченное из сообщения sqs.
Любые подсказки, как это сделать ?

Подробнее здесь: https://stackoverflow.com/questions/726 ... -telemetry
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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