diff --git a/spring-cloud-sleuth.html b/spring-cloud-sleuth.html index 7771a87e4..de65f71cb 100644 --- a/spring-cloud-sleuth.html +++ b/spring-cloud-sleuth.html @@ -2624,7 +2624,22 @@ an example of usage of SkipPatternProvider inside a server side,
@Configuration
 class Config {
-Unresolved directive in spring-cloud-sleuth.adoc - include::../../../spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java[tags=custom_server_sampler,indent=2]
+  @Bean(name = ServerSampler.NAME)
+  HttpSampler myHttpSampler(SkipPatternProvider provider) {
+  	Pattern pattern = provider.skipPattern();
+  	return new HttpSampler() {
+
+  		@Override
+  		public <Req> Boolean trySample(HttpAdapter<Req, ?> adapter, Req request) {
+  			String url = adapter.path(request);
+  			boolean shouldSkip = pattern.matcher(url).matches();
+  			if (shouldSkip) {
+  				return false;
+  			}
+  			return null;
+  		}
+  	};
+  }
 }
@@ -2640,7 +2655,33 @@ You can customize the tags or modify the response headers by registering your ow
-
Unresolved directive in spring-cloud-sleuth.adoc - include::../../..//spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterIntegrationTests.java[tags=response_headers,indent=0]
+
@Component
+@Order(TraceWebServletAutoConfiguration.TRACING_FILTER_ORDER + 1)
+class MyFilter extends GenericFilterBean {
+
+	private final Tracer tracer;
+
+	MyFilter(Tracer tracer) {
+		this.tracer = tracer;
+	}
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse response,
+			FilterChain chain) throws IOException, ServletException {
+		Span currentSpan = this.tracer.currentSpan();
+		if (currentSpan == null) {
+			chain.doFilter(request, response);
+			return;
+		}
+		// for readability we're returning trace id in a hex form
+		((HttpServletResponse) response).addHeader("ZIPKIN-TRACE-ID",
+				currentSpan.context().traceIdString());
+		// we can also add some custom tags
+		currentSpan.tag("custom", "tag");
+		chain.doFilter(request, response);
+	}
+
+}