Все начальные трассы, созданные Spring-Cloud-Gateway, называются "/", независимо от пути - PullRequest
0 голосов
/ 10 января 2020

Я интегрировал Sleuth в свой шлюз приложений и сервисы за ним. Трассировки в Stackdriver (GKE) выглядят хорошо, но root -span всегда называется "/". Например:

for example

Второй интервал также создается шлюзом и имеет гораздо лучшее имя.

Как настроить в моем шлюз-сервисе использовать другое именование или исправить то, что вызывает два пролета?

EDIT1 :

Я создал минимальный проект с spring-gateway, sleuth и gcp и написал LoggingReporter для печати всех отчетных диапазонов, в то время как работает автоконфигурация GCP.

StackdriverHttpClientParser имен диапазонов, основанных на URI запроса. Второй диапазон создается TraceWebFilter на основе запроса с полным URI. первый диапазон создается HttpClientBeanPostProcessor на основе uri "/".

Не думаю, что это проблема gcp. это, вероятно, проблема с пружинными воротами. Интересно, что сначала создается интервал TraceWebFilter, но PostProcessor-1 по-прежнему является родительским.

EDIT2 : я создал проблему в весеннем выпуске https://github.com/spring-cloud/spring-cloud-sleuth/issues/1535

1 Ответ

0 голосов
/ 16 января 2020

Я согласен с комментарием, сделанным Марсином, проблема может быть в Stackdriver, и вы можете проверить это, запустив трассировку в вашей среде (в автономном режиме), а также быть уверенным, что x-cloud-trace-context: TRACE_ID/SPAN_ID отформатирован правильно, согласно то, что я видел, есть три способа сделать это и упомянуто здесь .

Если трассировка завершается успешно, если ее запустить в автономном режиме без каких-либо изменений, то проблема в драйвере стека.

...