@Bean @Scope(value = "singleton") public ServerSpanThreadBinder serverSpanThreadBinder() { return brave.serverSpanThreadBinder(); } }
public void setBrave(Brave brave) { this.brave = brave; this.serverRequestInterceptor = checkNotNull(brave.serverRequestInterceptor()); this.serverResponseInterceptor = checkNotNull(brave.serverResponseInterceptor()); this.serverSpanThreadBinder = brave.serverSpanThreadBinder(); }
public static void setBrave(Brave brave) { BraveProviderFilter.brave = brave; BraveProviderFilter.serverRequestInterceptor = brave.serverRequestInterceptor(); BraveProviderFilter.serverResponseInterceptor = brave.serverResponseInterceptor(); BraveProviderFilter.serverSpanThreadBinder = brave.serverSpanThreadBinder(); }
@Override public void setClientAddress(Brave brave, Endpoint ca) { Span span = brave.serverSpanThreadBinder().get(); if (span == null) return; brave.serverTracer.recorder().address(span, "ca", ca); } };
BraveExecutorService(ExecutorService wrappedExecutor, Brave brave) { // intentionally hidden this.wrappedExecutor = checkNotNull(wrappedExecutor, "wrappedExecutor"); checkNotNull(brave, "brave"); this.localSpanThreadBinder = brave.localSpanThreadBinder(); this.serverSpanThreadBinder = brave.serverSpanThreadBinder(); }
/** * @since 3.17 */ public static BraveRunnable wrap(Runnable runnable, Brave brave) { checkNotNull(brave, "brave"); // auto-value will check the others. return new AutoValue_BraveRunnable( runnable, brave.localSpanThreadBinder(), brave.localSpanThreadBinder().getCurrentLocalSpan(), brave.serverSpanThreadBinder(), brave.serverSpanThreadBinder().getCurrentServerSpan() ); }
/** * @since 3.17 */ public static <T> BraveCallable<T> wrap(Callable<T> callable, Brave brave) { checkNotNull(brave, "brave"); // auto-value will check the others. return new AutoValue_BraveCallable( callable, brave.localSpanThreadBinder(), brave.localSpanThreadBinder().getCurrentLocalSpan(), brave.serverSpanThreadBinder(), brave.serverSpanThreadBinder().getCurrentServerSpan() ); }
ServletHandlerInterceptor(Builder b) { // intentionally hidden this.requestInterceptor = b.brave.serverRequestInterceptor(); this.responseInterceptor = b.brave.serverResponseInterceptor(); this.serverThreadBinder = b.brave.serverSpanThreadBinder(); this.spanNameProvider = b.spanNameProvider; this.serverTracer = b.brave.serverTracer(); this.maybeAddClientAddressFromRequest = MaybeAddClientAddressFromRequest.create(b.brave); }
protected HttpBraveServletFilter(Builder b,Set paths) { // intentionally hidden this.requestInterceptor = b.brave.serverRequestInterceptor(); this.responseInterceptor = b.brave.serverResponseInterceptor(); this.spanNameProvider = b.spanNameProvider; this.serverTracer = b.brave.serverTracer(); this.maybeAddClientAddressFromRequest = MaybeAddClientAddressFromRequest.create(b.brave); this.maybeAddClientHeaderParamFromRequest = MaybeAddClientHeaderParamFromRequest.create(b.brave); this.serverSpanThreadBinder = b.brave.serverSpanThreadBinder(); this.appliedPaths = paths; }
@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)); }
public final void accept(T input) { ServerSpan serverSpan = brave.serverSpanThreadBinder().getCurrentServerSpan(); Span span = serverSpan != null ? serverSpan.getSpan() : null; if (span == null) return;
@Test public void usesExistingTraceId_server() throws Exception { server.enqueue(new MockResponse()); brave.serverTracer().setStateUnknown("test"); ServerSpan parent = brave.serverSpanThreadBinder().getCurrentServerSpan(); try { get(client, "/foo"); } finally { brave.serverTracer().clearCurrentSpan(); } RecordedRequest request = server.takeRequest(); assertThat(request.getHeader("x-b3-traceId")) .endsWith(IdConversion.convertToString(parent.getSpan().getTrace_id())); assertThat(request.getHeader("x-b3-parentspanid")) .endsWith(IdConversion.convertToString(parent.getSpan().getId())); }
@Test public void usesParentFromInvocationTime_server() throws Exception { server.enqueue(new MockResponse().setBodyDelay(1, TimeUnit.SECONDS)); server.enqueue(new MockResponse()); brave.serverTracer().setStateUnknown("test"); ServerSpan parent = brave.serverSpanThreadBinder().getCurrentServerSpan(); try { getAsync(client, "/foo"); getAsync(client, "/foo"); } finally { brave.serverTracer().clearCurrentSpan(); } // changing the server span after the fact! brave.serverTracer().setStateUnknown("test"); try { for (int i = 0; i < 2; i++) { RecordedRequest request = server.takeRequest(); assertThat(request.getHeader("x-b3-traceId")) .endsWith(IdConversion.convertToString(parent.getSpan().getTrace_id())); assertThat(request.getHeader("x-b3-parentspanid")) .endsWith(IdConversion.convertToString(parent.getSpan().getId())); } } finally { brave.serverTracer().clearCurrentSpan(); } }