Трассировка Istio, связывающая несколько запросов вместе, используя заголовок - PullRequest
0 голосов
/ 01 апреля 2020

Я использую Istio с трассировкой. У меня есть две службы REST A1, которая вызывает A2. Служба A1 будет перенаправлять заголовки, полученные от клиента, в службу REST A2.

Однако я не могу увидеть трассировку в моем пользовательском интерфейсе Jaeger. Я отправляю некоторые случайные значения в заголовке с помощью curl на мой сервис A1:

 curl -H "end-user: april1101" -H "x-request-id: april1a01" 
   -H "x-b3-traceid: 1" -H "x-b3-spanid: 2" -H "x-b3-parentspanid: 3"
   -H "x-b3-sampled: 4dfgdgsdfgdfg" -H "x-b3-flags: 5" 
   -H "x-ot-span-context: 6"  http://trace-rest-2-service:9005/kafka/headerpass?arg=yo

Другие параметры заголовка, которые я пробовал также:

curl -H "end-user: 34723b86-fe18-4e36-ac56-0ad12bf3d136" 
-H "x-request-id: 4aba321a-4e60-4b42-b0ca-654c2400d485" 
-H "x-b3-traceid: 308eec41-93bd-4584-8efe-2b968284c41e" 
-H "x-b3-spanid: 8395e40e-6a79-4a34-b444-18d401f597cb" 
-H "x-b3-parentspanid: c55f6cf0-3547-4202-b51e-9eaaa2136a73" 
-H "x-b3-sampled: 1948dd81-9e70-4694-95f9-018e3abdbe29" 
-H "x-b3-flags: acac5baf-42d2-45d8-84d0-645070a76f2e" 
-H "x-ot-span-context: 6ee27e27-45c4-47de-86e4-1d4227bcf638"  
http://trace-rest-2-service:9005/kafka/headerpass?arg=832amApril_1

Однако я не вижу никаких след на Jaeger UI. Если просто позвонить в службу A3 без пропуска каких-либо заголовков, то я увижу, что отслеживается в JaegerUI.

спасибо

1 Ответ

0 голосов
/ 02 апреля 2020

Существует несколько разных причин, по которым Вы можете столкнуться с этой проблемой.

Из istio документация:

ПОЧЕМУ МОИ ЗАПРОСЫ НЕ ОТСЛЕЖИВАЮТСЯ?

Начиная с Istio 1.0.3, частота выборки для трассировки была уменьшена до 1% в профиле конфигурации default . Это означает, что только 1 из 100 экземпляров трассировки, захваченных Istio, будет передан бэкэнду трассировки. Частота дискретизации в профиле demo по-прежнему установлена ​​на 100%. См. этот раздел для получения дополнительной информации о том, как установить частоту дискретизации.

Если вы все еще не видите никаких данных трассировки, пожалуйста, подтвердите, что ваши порты соответствуют именам портов Istio и что соответствующий контейнерный порт открыт (например, через pod spe c), чтобы включить перехват traffi c прокси-сервером sidecar (Envoy).

Если вы видите только данные трассировки связанный с выходным прокси-сервером, но не с входящим прокси-сервером, он все же может быть связан с соглашениями об именах портов Istio . Начиная с Istio 1.3 протокол для исходящего traffi c автоматически определяется.

Надеюсь, это поможет.

...