added a zipkin servlet filter

This commit is contained in:
Spencer Gibb
2015-03-18 13:28:36 -06:00
parent 05518731e3
commit bf760f4a3a
5 changed files with 63 additions and 5 deletions

View File

@@ -94,6 +94,11 @@
<artifactId>flume-zipkin-metrics-sink</artifactId>
<version>${brave.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>

View File

@@ -50,6 +50,10 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>

View File

@@ -16,7 +16,6 @@ import com.github.kristofa.brave.ClientTracer;
import com.github.kristofa.brave.ClientTracerConfig;
import com.github.kristofa.brave.EndPointSubmitterConfig;
import com.github.kristofa.brave.FixedSampleRateTraceFilter;
import com.github.kristofa.brave.LoggingSpanCollectorImpl;
import com.github.kristofa.brave.ServerSpanThreadBinderConfig;
import com.github.kristofa.brave.ServerTracerConfig;
import com.github.kristofa.brave.SpanCollector;

View File

@@ -0,0 +1,43 @@
package org.springframework.cloud.sleuth.zipkin.web;
import org.springframework.cloud.sleuth.zipkin.ZipkinInterceptor;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
/**
* @author Spencer Gibb
*/
public class ZipkinFilter implements Filter {
private final ZipkinInterceptor zipkinInterceptor;
public ZipkinFilter(ZipkinInterceptor zipkinInterceptor) {
this.zipkinInterceptor = zipkinInterceptor;
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
//NOOP
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
zipkinInterceptor.preTrace(request);
chain.doFilter(request, response);
zipkinInterceptor.postTrace(request);
}
@Override
public void destroy() {
//NOOP
}
}

View File

@@ -2,6 +2,7 @@ package org.springframework.cloud.sleuth.zipkin.web;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
@@ -34,10 +35,15 @@ public class ZipkinWebAutoConfiguration {
@Autowired
private ServerTracer serverTracer;
@Bean
/*@Bean
public ZipkinHandlerInterceptor zipkinHandlerInterceptor() {
return new ZipkinHandlerInterceptor(httpServletRequestInterceptor());
}
}*/
@Bean
public ZipkinFilter zipkinFilter() {
return new ZipkinFilter(httpServletRequestInterceptor());
}
@Bean
public HttpServletRequestInterceptor httpServletRequestInterceptor() {
@@ -45,8 +51,9 @@ public class ZipkinWebAutoConfiguration {
}
@Bean
public WebMvcConfigurerAdapter webMvcConfigurerAdapter() {
return new ZipkinWebConfigurer(zipkinHandlerInterceptor());
@ConditionalOnBean(ZipkinHandlerInterceptor.class)
public WebMvcConfigurerAdapter webMvcConfigurerAdapter(ZipkinHandlerInterceptor zipkinHandlerInterceptor) {
return new ZipkinWebConfigurer(zipkinHandlerInterceptor);
}
@Configuration