@Bean @Scope(value = "singleton") public ServerTracer serverTracer() { return brave.serverTracer(); }
@Override public void stop(StopContext stopContext) { if (this.brave != null) { LOG.info("Shutdown Zipkin BTM services"); this.brave.serverTracer().setStateNoTracing(); } }
protected BraveServletFilter(Builder b) { // 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); }
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 Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { serverRequestInterceptor.handle(new DubboServerRequestAdapter(invoker,invocation,brave.serverTracer())); Result rpcResult = invoker.invoke(invocation); serverResponseInterceptor.handle(new DubboServerResponseAdapter(rpcResult)); return rpcResult; } }
@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)); }
@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(); } }
@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())); }