Merge pull request #111 from DataDog/tyler/servlet-async
Mark servlet trace filter as async supported
This commit is contained in:
commit
82a9c73c6b
|
@ -3,6 +3,7 @@ package com.datadoghq.trace.agent.integration;
|
||||||
import io.opentracing.contrib.web.servlet.filter.TracingFilter;
|
import io.opentracing.contrib.web.servlet.filter.TracingFilter;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import javax.servlet.Filter;
|
import javax.servlet.Filter;
|
||||||
|
import javax.servlet.FilterRegistration;
|
||||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||||
import org.jboss.byteman.rule.Rule;
|
import org.jboss.byteman.rule.Rule;
|
||||||
|
|
||||||
|
@ -25,11 +26,11 @@ public class JettyServletHelper extends DDAgentTracingHelper<ServletContextHandl
|
||||||
String[] patterns = {"/*"};
|
String[] patterns = {"/*"};
|
||||||
|
|
||||||
Filter filter = new TracingFilter(tracer);
|
Filter filter = new TracingFilter(tracer);
|
||||||
contextHandler
|
FilterRegistration.Dynamic registration =
|
||||||
.getServletContext()
|
contextHandler.getServletContext().addFilter("tracingFilter", filter);
|
||||||
.addFilter("tracingFilter", filter)
|
registration.setAsyncSupported(true);
|
||||||
.addMappingForUrlPatterns(
|
registration.addMappingForUrlPatterns(
|
||||||
EnumSet.allOf(javax.servlet.DispatcherType.class), true, patterns);
|
EnumSet.allOf(javax.servlet.DispatcherType.class), true, patterns);
|
||||||
|
|
||||||
setState(contextHandler.getServletContext(), 1);
|
setState(contextHandler.getServletContext(), 1);
|
||||||
return contextHandler;
|
return contextHandler;
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.datadoghq.trace.agent.integration;
|
||||||
import io.opentracing.contrib.web.servlet.filter.TracingFilter;
|
import io.opentracing.contrib.web.servlet.filter.TracingFilter;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import javax.servlet.Filter;
|
import javax.servlet.Filter;
|
||||||
|
import javax.servlet.FilterRegistration;
|
||||||
import org.apache.catalina.core.ApplicationContext;
|
import org.apache.catalina.core.ApplicationContext;
|
||||||
import org.jboss.byteman.rule.Rule;
|
import org.jboss.byteman.rule.Rule;
|
||||||
|
|
||||||
|
@ -25,10 +26,10 @@ public class TomcatServletHelper extends DDAgentTracingHelper<ApplicationContext
|
||||||
String[] patterns = {"/*"};
|
String[] patterns = {"/*"};
|
||||||
|
|
||||||
Filter filter = new TracingFilter(tracer);
|
Filter filter = new TracingFilter(tracer);
|
||||||
contextHandler
|
FilterRegistration.Dynamic registration = contextHandler.addFilter("tracingFilter", filter);
|
||||||
.addFilter("tracingFilter", filter)
|
registration.setAsyncSupported(true);
|
||||||
.addMappingForUrlPatterns(
|
registration.addMappingForUrlPatterns(
|
||||||
EnumSet.allOf(javax.servlet.DispatcherType.class), true, patterns);
|
EnumSet.allOf(javax.servlet.DispatcherType.class), true, patterns);
|
||||||
|
|
||||||
return contextHandler;
|
return contextHandler;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,8 @@ import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
import javax.ws.rs.QueryParam;
|
import javax.ws.rs.QueryParam;
|
||||||
|
import javax.ws.rs.container.AsyncResponse;
|
||||||
|
import javax.ws.rs.container.Suspended;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
|
|
||||||
|
@ -96,6 +98,13 @@ public class SimpleCrudResource {
|
||||||
return books;
|
return books;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/async")
|
||||||
|
public void async(@Suspended AsyncResponse response) {
|
||||||
|
// not actually async, but useful for testing that codepath.
|
||||||
|
response.resume("Returned from async");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The beforeDB is traced using the annotation @Trace with a custom operationName and a custom
|
* The beforeDB is traced using the annotation @Trace with a custom operationName and a custom
|
||||||
* tag.
|
* tag.
|
||||||
|
|
Loading…
Reference in New Issue