Я создал несколько сервисов на основе 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 одно и то же имя, оно будет автоматически коррелировать. Я использовал для этого идентификатор сессии пользователя. Это не работает.