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();
}