问题
Sleuth is not sending the trace information to Zipkin, even though Zipkin is running fine. I am using Spring 1.5.8.RELEASE, spring cloud Dalston.SR4 and I have added the below dependencies in my microservices:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
My Logs are always coming false: [FOOMS,2e740f33c26e286d,2e740f33c26e286d,false]
My Zipkin dependencies are:
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
<scope>runtime</scope>
</dependency>
Why am I getting false instead of true in my slueth statements? The traceId and SpanId are properly generated for all the calls though. My Zipkin is running in port 9411
回答1:
I found that I need to add a sampler percentage. By default zero percentage of the samples are sent and that is why the sleuth was not sending anything to zipkin. when I added spring.sleuth.sampler.percentage=1.0
in the properties files, it started working.
回答2:
For the latest version of cloud dependencies <version>Finchley.SR2</version>
The correct property to send traces to zipkin is: spring.sleuth.sampler.probability=1.0
Which has changed from percentage to probability.
回答3:
If you are exporting all the span data to Zipkin, sampler can be installed by creating a bean definition in the Spring boot main class
@Bean
public Sampler defaultSampler() {
return new AlwaysSampler();
}
来源:https://stackoverflow.com/questions/47670883/sleuth-not-sending-trace-information-to-zipkin