added a zipkin servlet filter
This commit is contained in:
5
pom.xml
5
pom.xml
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user