Как я могу добавить атрибуты диапазона, специфичные для запроса, для запросов в приложении WebFluxJAVA

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

Сообщение Anonymous »

Я пытаюсь добавить дополнительные атрибуты в свои интервалы OpenTelemetry, я запускаю Spring Boot (3.3.4) с включенным типом веб-приложения: реактивный.
Мне нужно добавить определенные предопределенные атрибуты, а также нужно реагировать на определенные входящие заголовки, добавляя атрибуты в текущий диапазон в зависимости от их значения.
Но на данный момент это единственный способ я могу добавлять атрибуты, используя CustomSpanProcessor, но я могу заставить этот подход работать только для предварительно определенных атрибутов, поскольку я не могу добавить информацию, специфичную для запроса доступа (например, RequestContextHolder недоступен) .
@Component
public class CustomSpanProcessor implements SpanProcessor {

@Override
public void onStart(Context parentContext, ReadWriteSpan span) {
span.setAttribute("customAttribute", "value"))
}

//other interface methods...
}

Я пытался получить информацию, специфичную для запроса, в процессоре с помощью WebFilter.
public class TracingRequestFilter implements WebFilter {
Map attr = Map.of("dynamicAttribute", getValue(exhange));
return chain.filter(exchange)
.contextWrite(reactor.util.context.Context.of(WEB_REQUEST_ATTRIBUTES, attr));
}

И затем доступ к нему в onStart CustomProcessor
@Component
public class CustomSpanProcessor implements SpanProcessor {

@Override
public void onStart(Context parentContext, ReadWriteSpan span) {
Mono.deferContextual(ctx -> {
Map attributes = ctx.get(TracingRequestFilter.WEB_REQUEST_ATTRIBUTES);
attributes.forEach((s, o) -> span.setAttribute(s, o.toString()));
return Mono.empty();
}).subscribeOn(Schedulers.boundedElastic())
.subscribe(); // as i'm not allowed to block the thread..
}

//other interface methods...
}


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

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

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

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

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

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

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