У меня есть:
io.micrometer:micrometer-tracing-bridge-brave
В настоящее время мы можем установить management.tracing.baggage.remote-fields=f-user
и ожидать, что заголовок f-user
будет распространяться вниз по течению, используя RestTemplate
, RestClient
или WebClient
.
Как настроить платформу для распространения любого заголовка с помощью регулярного выражения f-.*
?
обновлять:
Один очевидный способ — сделать это с помощью MDC, но на самом деле он не является потокобезопасным и потребует настройки для асинхронных задач.
Я смог найти хороший способ использовать абстракции трассировки микрометров, и мне это понравилось:
Я использую местный management.tracing.baggage.local-fields: combined-field
В OncePerRequestFilter
и WebFilter
(реактивные) я установил все заголовки по шаблону f-.*
в combined-field
локальное поле багажа, разделив по ;
В ClientHttpRequestInterceptor
и WebClientCustomizer
я беру из багажа локальное поле combined-field
и возвращаюсь обратно к N заголовков, устанавливающих нисходящий HTTP-запрос.