I'm trying to instrument a Spring Cloud RxJava sample app with Jaeger, and for some reason I'm failing!
I have a couple of other SpringCloud apps, like Hystrix, JDBC and JMS working fine with the tracing being reported to Jeager by just adding the maven dependency to it.
For RxJava, on the other hand, I can't figure it out why I'm not able to follow the same approach...
When I leave the App without a Tracer @Bean, I don't get anything in Jaeger and I get this message:
Tracer bean is not configured! Switching to NoopTracer
All the other SpringCloud apps are working without the Tracer @Bean, so I was expecting the same behavior for the RxJava...
The worst part is that whenever I add the Tracer @Bean, the bean is initialized, but still no data is sent to Jaeger...
Not sure if it is related to this message:
Bean 'tracer' of type [io.jaegertracing.Tracer] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
Does anyone have any idea?
Do I need to set anything in the application.properties?
I'm posting below my pom.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.springcloud</groupId>
<artifactId>rxjava</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>rxjava</name>
<description>RxJava Spring Cloud</description>
<properties>
<java.version>11</java.version>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-cloud-starter</artifactId>
<version>0.5.7</version>
</dependency>
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-cloud-starter-jaeger</artifactId>
<version>0.1.13</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>2.3.4.RELEASE</version>
</dependency>
<dependency>
<groupId>io.reactivex</groupId>
<artifactId>rxjava</artifactId>
<version>1.3.8</version>
</dependency>
<dependency>
<groupId>io.opentracing</groupId>
<artifactId>opentracing-util</artifactId>
<version>0.32.0</version>
</dependency>
<dependency>
<groupId>io.opentracing</groupId>
<artifactId>opentracing-api</artifactId>
<version>0.32.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Sample app committed here: https://github.com/julianocosta89/rxjava-jeager