Java源码示例:com.github.kristofa.brave.Brave
示例1
@ConditionalOnMissingBean(Brave.class)
@ConditionalOnBean(SpanCollector.class)
@Bean
public Brave brave(SpanCollector spanCollector, Environment env) {
String applicationName = env.getProperty("spring.application.name");
if (StringUtil.isNullOrEmpty(applicationName))
throw new RuntimeException("spring.application.name=null, config it or #tracing.zipkin.url=");
Brave.Builder builder = new Brave.Builder(applicationName);
builder.spanCollector(spanCollector);
builder.traceSampler(Sampler.create(properties.getSampleRate()));
logger.info("Tracing(ZipKin): Brave instance created, default add tracing to ReyClient" );
logger.info("Config Zipkin Servlet Tracing by: @EnableTracingServlet");
logger.info("create more tracing filter or interceptor for spring boot project, by parameter (Brave brave), like code as follows: ");
logger.info(" @ConditionalOnMissingBean(BraveServletFilter.class)");
logger.info(" @ConditionalOnBean(Brave.class)");
logger.info(" @Bean");
logger.info(" public BraveServletFilter braveServletFilter(Brave brave) {");
return builder.build();
}
示例2
static public void main(String[] args) throws IOException, InterruptedException {
Brave brave = Constant.brave("goodbye-service");
ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 8080)
.usePlaintext()
.intercept(new BraveGrpcClientInterceptor(brave))
.build();
GreetingServiceGrpc.GreetingServiceBlockingStub greetingStub = GreetingServiceGrpc.newBlockingStub(channel);
Server goodbyeServer = ServerBuilder.forPort(9090)
.addService(ServerInterceptors.intercept(new GoodbyeServiceImpl(greetingStub),
new BraveGrpcServerInterceptor(brave),
MonitoringServerInterceptor.create(Configuration.allMetrics())))
.build();
goodbyeServer.start();
PrometheusServer prometheusServer = new PrometheusServer(CollectorRegistry.defaultRegistry, 8081);
prometheusServer.start();
System.out.println("Server started!");
goodbyeServer.awaitTermination();
prometheusServer.shutdown();
}
示例3
@Override
public void run(AppConfiguration configuration, Environment environment) throws Exception {
configuration.getZipkinClient().setTimeout(Duration.seconds(50));
configuration.getZipkinClient().setConnectionRequestTimeout(Duration.seconds(50));
Brave brave = configuration.getZipkinFactory().build(environment).get();
final Client client = new ZipkinClientBuilder(environment, brave)
.build(configuration.getZipkinClient());
new MySQLStatementInterceptorManagementBean(brave.clientTracer());
/**
* Database
*/
createDatabase();
DatabaseUtils.executeDatabaseScript("init.sql");
UserDAO userDAO = new UserDAO();
// Register resources
environment.jersey().register(new HelloHandler());
environment.jersey().register(new SyncHandler(client));
environment.jersey().register(new AsyncHandler(client, brave));
environment.jersey().register(new UsersHandler(userDAO, client, brave));
}
示例4
@Bean
public Brave brave(SpanCollector spanCollector) {
Brave.Builder builder = new Brave.Builder(applicationName);// 指定serviceName
builder.spanCollector(spanCollector);
builder.traceSampler(Sampler.create(1));// 采集率
return builder.build();
}
示例5
@Bean
public BraveServletFilter braveServletFilter(Brave brave) {
/**
* 设置sr、ss拦截器
*/
return new BraveServletFilter(brave.serverRequestInterceptor(), brave.serverResponseInterceptor(),
new DefaultSpanNameProvider());
}
示例6
@Bean
public OkHttpClient okHttpClient(Brave brave) {
/**
* 设置cs、cr拦截器
*/
return new OkHttpClient.Builder()
.addInterceptor(new BraveOkHttpRequestResponseInterceptor(brave.clientRequestInterceptor(),
brave.clientResponseInterceptor(), new DefaultSpanNameProvider()))
.build();
}
示例7
@Bean
public Brave brave(SpanCollector spanCollector) {
Brave.Builder builder = new Brave.Builder(applicationName);// 指定serviceName
builder.spanCollector(spanCollector);
builder.traceSampler(Sampler.create(1));// 采集率
return builder.build();
}
示例8
@Bean
public BraveServletFilter braveServletFilter(Brave brave) {
/**
* 设置sr、ss拦截器
*/
return new BraveServletFilter(brave.serverRequestInterceptor(), brave.serverResponseInterceptor(),
new DefaultSpanNameProvider());
}
示例9
@Bean
public OkHttpClient okHttpClient(Brave brave) {
/**
* 设置cs、cr拦截器
*/
return new OkHttpClient.Builder()
.addInterceptor(new BraveOkHttpRequestResponseInterceptor(brave.clientRequestInterceptor(),
brave.clientResponseInterceptor(), new DefaultSpanNameProvider()))
.build();
}
示例10
@Bean
public Brave brave(SpanCollector spanCollector) {
Brave.Builder builder = new Brave.Builder(applicationName);// 指定serviceName
builder.spanCollector(spanCollector);
builder.traceSampler(Sampler.create(1));// 采集率
return builder.build();
}
示例11
@Bean
public BraveServletFilter braveServletFilter(Brave brave) {
/**
* 设置sr、ss拦截器
*/
return new BraveServletFilter(brave.serverRequestInterceptor(), brave.serverResponseInterceptor(),
new DefaultSpanNameProvider());
}
示例12
@Bean
public OkHttpClient okHttpClient(Brave brave) {
/**
* 设置cs、cr拦截器
*/
return new OkHttpClient.Builder()
.addInterceptor(new BraveOkHttpRequestResponseInterceptor(brave.clientRequestInterceptor(),
brave.clientResponseInterceptor(), new DefaultSpanNameProvider()))
.build();
}
示例13
@Bean
public Brave brave(SpanCollector spanCollector) {
Brave.Builder builder = new Brave.Builder(applicationName);// 指定serviceName
builder.spanCollector(spanCollector);
builder.traceSampler(Sampler.create(1));// 采集率
return builder.build();
}
示例14
@Bean
public BraveServletFilter braveServletFilter(Brave brave) {
/**
* 设置sr、ss拦截器
*/
return new BraveServletFilter(brave.serverRequestInterceptor(), brave.serverResponseInterceptor(),
new DefaultSpanNameProvider());
}
示例15
@Bean
public OkHttpClient okHttpClient(Brave brave) {
/**
* 设置cs、cr拦截器
*/
return new OkHttpClient.Builder()
.addInterceptor(new BraveOkHttpRequestResponseInterceptor(brave.clientRequestInterceptor(),
brave.clientResponseInterceptor(), new DefaultSpanNameProvider()))
.build();
}
示例16
@ConditionalOnMissingBean(Brave.class)
@ConditionalOnProperty(
value = {"tracing.zipkin.url"})
@Bean
public SpanCollector spanCollector() {
HttpSpanCollector.Config config = HttpSpanCollector.Config.builder().compressionEnabled(properties.isCompressionEnabled()).connectTimeout(properties.getConnectTimeout())
.flushInterval(properties.getFlushInterval()).readTimeout(properties.getReadTimeout()).build();
return HttpSpanCollector.create(properties.getUrl(), config, new EmptySpanCollectorMetricsHandler());
}
示例17
@ConditionalOnMissingBean(BraveHttpRequestInterceptor.class)
@ConditionalOnBean(Brave.class)
@Bean
public BraveHttpRequestInterceptor requestInterceptor(Brave brave) {
return new BraveHttpRequestInterceptor(brave.clientRequestInterceptor(),
new DefaultSpanNameProvider());
}
示例18
@ConditionalOnMissingBean(BraveServletFilter.class)
@ConditionalOnBean(Brave.class)
@Bean
public BraveServletFilter braveServletFilter(Brave brave) {
return new BraveServletFilter(brave.serverRequestInterceptor(), brave.serverResponseInterceptor(),
new DefaultSpanNameProvider());
}
示例19
Brave.Builder braveBuilder(Sampler sampler) {
com.twitter.zipkin.gen.Endpoint localEndpoint = com.twitter.zipkin.gen.Endpoint.builder()
.ipv4(local.ipv4)
.ipv6(local.ipv6)
.port(local.port)
.serviceName(local.serviceName)
.build();
return new Brave.Builder(new InheritableServerClientAndLocalSpanState(localEndpoint))
.reporter(new Slf4jLogReporter("zipkin"))
.traceSampler(sampler);
}
示例20
Brave.Builder braveBuilder(Sampler sampler) {
com.twitter.zipkin.gen.Endpoint localEndpoint = com.twitter.zipkin.gen.Endpoint.builder()
.ipv4(local.ipv4)
.ipv6(local.ipv6)
.port(local.port)
.serviceName(local.serviceName)
.build();
return new Brave.Builder(new InheritableServerClientAndLocalSpanState(localEndpoint))
.reporter(new Slf4jLogReporter("zipkin"))
.traceSampler(sampler);
}
示例21
Brave.Builder braveBuilder(Sampler sampler) {
com.twitter.zipkin.gen.Endpoint localEndpoint = com.twitter.zipkin.gen.Endpoint.builder()
.ipv4(local.ipv4)
.ipv6(local.ipv6)
.port(local.port)
.serviceName(local.serviceName)
.build();
return new Brave.Builder(new InheritableServerClientAndLocalSpanState(localEndpoint))
.reporter(new Slf4jLogReporter("zipkin"))
.traceSampler(sampler);
}
示例22
public Brave getBraveInstance() {
Brave.Builder builder = new Brave.Builder(name.get());
if (this.url.isDefault()) {
builder.reporter(new LoggingReporter())
.traceSampler(Sampler.create(1.0f));
} else {
AsyncReporter<Span> asyncReporter = AsyncReporter.builder(URLConnectionSender.create(url.get())).build();
builder.reporter(asyncReporter)
.traceSampler(Sampler.create(rate.get()));
}
return builder.build();
}
示例23
public Brave create() {
final Brave.Builder builder = new Brave.Builder();
final Brave brave = builder
.reporter(new LoggingReporter())
.traceSampler(Sampler.create(1.0f)) // retain 100% of traces
.build();
return brave;
}
示例24
static public void main(String [] args) throws IOException, InterruptedException {
Brave brave = Constant.brave("greeting-service");
Server greetingServer = ServerBuilder.forPort(8080)
.addService(ServerInterceptors.intercept(new GreetingServiceImpl(),
new BraveGrpcServerInterceptor(brave),
MonitoringServerInterceptor.create(Configuration.allMetrics())))
.build();
greetingServer.start();
System.out.println("Server started!");
greetingServer.awaitTermination();
}
示例25
public static Brave brave(String serviceName) {
return new Brave.Builder(serviceName)
.traceSampler(Sampler.ALWAYS_SAMPLE)
.reporter(AsyncReporter.builder(URLConnectionSender.builder()
.endpoint("http://docker-machine.dev:8080/api/v1/spans")
.build()).build())
.build();
}
示例26
@Inject
public UserDAO(Brave brave) {
this.brave = brave;
Cluster cluster = Cluster.builder().addContactPoint("cassandra").build();
this.session = cluster.connect();
init();
}
示例27
@Produces
@Singleton
public Brave getBrave() {
String port = System.getenv("TRACING_PORT");
if (port == null) {
throw new IllegalStateException("Environmental variable TRACING_PORT is not set!");
}
return new Brave.Builder("wildfly-swarm")
.reporter(AsyncReporter.builder(OkHttpSender.builder()
.endpoint("http://tracing-server:" + port + "/api/v1/spans")
.build())
.build())
.build();
}
示例28
public static void startTrace(Block block, Request request) {
if (!isTracingEnabledRequest() || !trace(block)) {
return;
}
String name = getName(block);
ClientTracer clientTracer = Brave.getClientTracer(SPAN_COLLECTOR, TRACING_ON_FILTERS);
clientTracer.startNewSpan(name);
clientTracer.setCurrentClientServiceName(name);
if (request != null) {
clientTracer.submitBinaryAnnotation(REQUEST_ANNOTATION, request.toString());
}
clientTracer.setClientSent();
}
示例29
public static void endTrace(Block block, boolean success) {
if (!isTracingEnabledRequest() || !trace(block)) {
return;
}
ClientTracer clientTracer = Brave.getClientTracer(SPAN_COLLECTOR, TRACING_ON_FILTERS);
if (!success) {
clientTracer.submitAnnotation(FAILURE_ANNOTATION);
}
clientTracer.setClientReceived();
}
示例30
protected ContextInducedBlock(Block block) {
this.block = block;
parentContext = RequestContext.getContextMap();
serviceContextState = ServiceContext.getState();
parentThreadState = HystrixRequestContext.getContextForCurrentThread();
mdcContext = MDC.getCopyOfContextMap();
serverSpan = Brave.getServerSpanThreadBinder().getCurrentServerSpan();
}