/** recreate the server if needed */ protected abstract void init(Brave brave, SpanNameProvider spanNameProvider) throws Exception;
@Bean public OkHttpClient okHttpClient(Brave brave){ OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(new BraveOkHttpRequestResponseInterceptor(brave.clientRequestInterceptor(), brave.clientResponseInterceptor(), new DefaultSpanNameProvider())) .build(); return client; } }
@Bean public BraveServletFilter braveServletFilter(Brave brave){ BraveServletFilter filter = new BraveServletFilter(brave.serverRequestInterceptor(),brave.serverResponseInterceptor(),new DefaultSpanNameProvider()); return filter; }
public ServerRequestInterceptor() { try { this.brave = BraveLookup.lookup().get(); this.delegate = new BraveContainerRequestFilter( brave.serverRequestInterceptor(), new DefaultSpanNameProvider() ); } catch (NamingException e) { throw new RuntimeException("Failed to lookup brave", e); } }
public ClientRequestInterceptor() { this.brave = new BraveFactory().create(); this.delegate = new BraveClientRequestFilter( new DefaultSpanNameProvider(), brave.clientRequestInterceptor() ); }
/** * Intercepts the server request flow and extract request information * to be published to the Zipkin server for tracing. */ @Override public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo) throws Exception { serviceMethodInfo.setAttribute(RESPONDER_ATTRIBUTE, responder); HttpServerRequest req = new TraceableHttpServerRequest(request); HttpServerRequestAdapter reqAdapter = new HttpServerRequestAdapter(req, new DefaultSpanNameProvider()); reqInterceptor.handle(reqAdapter); return true; }
@Override public void addInterceptors(InterceptorRegistry registry) { ServerTracer tracer = brave.serverTracer(); ServletHandlerInterceptor traceInterceptor = new ServletHandlerInterceptor( new ServerRequestInterceptor(tracer), new ServerResponseInterceptor(tracer), new DefaultSpanNameProvider(), brave.serverSpanThreadBinder()); registry.addInterceptor(new NoPOSTHandlerInterceptorAdapter(traceInterceptor)); }
@Override public Response execute(Request request, Request.Options options) throws IOException { Map<String, Collection<String>> traceHeaders = new HashMap<>(); traceHeaders.putAll(request.headers()); Request wrappedRequest = Request.create(request.method(), request.url(), traceHeaders, request.body(), request.charset()); HttpClientRequest httpClientRequest = new TraceableHttpClientRequest(wrappedRequest); ClientRequestAdapter adapter = new HttpClientRequestAdapter(httpClientRequest, new DefaultSpanNameProvider()); requestInterceptor.handle(adapter); Response response = clientDelegate.execute(wrappedRequest, options); HttpResponse httpResponse = new TraceableHttpClientResponse(response); ClientResponseAdapter responseAdapter = new HttpClientResponseAdapter(httpResponse); responseInterceptor.handle(responseAdapter); return response; } }