TracingConfig.java
1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.infoloop.tianting.config;
import brave.Tracing;
import brave.baggage.BaggagePropagation;
import brave.baggage.BaggagePropagationConfig;
import brave.propagation.B3Propagation;
import brave.propagation.ThreadLocalCurrentTraceContext;
import brave.sampler.Sampler;
import com.infoloop.tianting.constant.ConfigConstants;
import com.infoloop.tianting.tracing.GrpcClientInterceptor;
import io.grpc.ClientInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import zipkin2.reporter.Reporter;
import zipkin2.reporter.brave.AsyncZipkinSpanHandler;
public final class TracingConfig {
@Bean
ClientInterceptor grpcClientInterceptor(@Autowired final Tracing tracing) {
return new GrpcClientInterceptor(tracing);
}
@Bean
Tracing tracing(@Value(ConfigConstants.APP_NAME) final String serviceName) {
return Tracing
.newBuilder()
.sampler(Sampler.ALWAYS_SAMPLE)
.localServiceName(serviceName)
.propagationFactory(BaggagePropagation
.newFactoryBuilder(B3Propagation.FACTORY)
.add(BaggagePropagationConfig.SingleBaggageField.remote(ConfigConstants.BRAVE_PROPAGATION_DEBUG_FIELD))
.build())
.currentTraceContext(ThreadLocalCurrentTraceContext.create())
// .addSpanHandler(AsyncZipkinSpanHandler.create(URLConnectionSender.create(url)))
.addSpanHandler(AsyncZipkinSpanHandler.create(Reporter.CONSOLE))
.build();
}
}