Spring Boot и Spring 5 и трассировка с помощью Zipkin - PullRequest
0 голосов
/ 28 марта 2019

Я создал несколько сервисов на основе SpringBoot (spring-boot-starter-parent: 2.1.3.RELEASE) и добавил в зависимости (pom.xml):

    <!--
    | Tracing
    -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-sleuth-core</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>

и добавьте конфигурацию для zipkin в application.properties. Все эти сервисы связываются через очереди (RabbitMQ). И зипкин обнаружил зависимости, все ок.

Но! У меня есть несколько служб (Spring 3.1. *), Которые я назвал через SOAP WSDL (реализация на CXF Apache).

    <!-- BRAVE VERSION 5.6.3 -->
    <dependency>
        <groupId>io.zipkin.brave</groupId>
        <artifactId>brave</artifactId>
    </dependency>
    <dependency>
        <groupId>io.zipkin.reporter2</groupId>
        <artifactId>zipkin-sender-okhttp3</artifactId><version>2.8.1</version>
    </dependency>
    <dependency>
        <groupId>io.zipkin.brave</groupId>
        <artifactId>brave-instrumentation-httpclient</artifactId>
    </dependency>

Это не асинхронные вызовы, и я думаю, что span в службах Spring3 должен принимать spanId веб-шлюза как parentId. Это поможет мне сопоставить диапазон от сервисов diff на веб-панели zipkin (групповые диапазоны на одном графике шкалы времени). И я не понимаю, как это сделать. Я думал, что если у span-ов в сервисах diff одно и то же имя, оно будет автоматически коррелировать. Я использовал для этого идентификатор сессии пользователя. Это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...