Переадресация заголовков запросов на следующий микросервис с использованием Jaeger в SpringBoot - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть два основных микросервиса Springboot, и я использую Jaeger.Допустим, две службы: foo и bar.Я могу отправить заголовок User-Agent из foo в бар, используя свойство Tracing Baggage.

Из службы foo я буду звонить в службу bar с использованием localhost:port на данный момент.

Пользователи также отправят заголовок x-api-key в запросе.Этот заголовок не пересылается с foo на bar службу.

Это мой фрагмент кода,

public ResponseEntity<String> fooService(@RequestHeader("User-Agent") String userAgent, @RequestHeader(value="x-api-key", required = false) String apikeyHeader) {
        try {
            /**
             * Set baggage
             */
            tracer.activeSpan().setBaggageItem("user-agent", userAgent);

            if (apikeyHeader != null && !apikeyHeader.isEmpty()) {
                tracer.activeSpan().setBaggageItem("x-api-key", apikeyHeader);
            }

В журналах моей службы bar он получаетэти заголовки, uberctx-user-agent и uberctx-x-api-key

Я не уверен, почему добавляется uber-ctx-*, я только хочу, чтобы заголовок x-api-key был перенаправлен.

1 Ответ

0 голосов
/ 25 февраля 2019

Установка элемента багажа не такая же, как установка заголовка HTTP.Вы должны использовать свой HTTP-клиент (не показан в вашем примере) для установки заголовка HTTP.

Элементы багажа могут быть или не быть доступны в виде отдельных заголовков HTTP: это подробная реализация базового трассировщика, такого как Jaeger.

...