Simple jetty perf test

This commit is contained in:
Andrew Kent 2017-12-29 13:09:11 -08:00
parent e65132e462
commit 599211e750
3 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,13 @@
dependencies {
compile project(':dd-java-agent-perftests')
compile group: 'org.eclipse.jetty', name: 'jetty-server', version: '9.4.1.v20170120'
compile group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '9.4.1.v20170120'
}
jar {
manifest {
attributes(
"Main-Class": "dd.perftest.jetty.JettyPerftest"
)
}
}

View File

@ -0,0 +1,58 @@
package dd.perftest.jetty;
import dd.perftest.Worker;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
public class JettyPerftest {
private static final int PORT = 8080;
private static final String PATH = "/work";
private static final Server jettyServer = new Server(PORT);
private static final ServletContextHandler servletContext = new ServletContextHandler();
public static void main(String[] args) throws Exception {
servletContext.addServlet(PerfServlet.class, PATH);
jettyServer.setHandler(servletContext);
jettyServer.start();
Runtime.getRuntime()
.addShutdownHook(
new Thread() {
public void run() {
try {
jettyServer.stop();
jettyServer.destroy();
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
});
}
@WebServlet
@SuppressWarnings("serial")
public static class PerfServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if (request.getParameter("error") != null) {
throw new RuntimeException("some sync error");
}
final String workVal = request.getParameter("workTimeMS");
long workTimeMS = 0l;
if (null != workVal) {
workTimeMS = Long.parseLong(workVal);
}
if (workTimeMS > 0) {
Worker.doWork(workTimeMS);
}
response.getWriter().print("Did " + workTimeMS + "ms of work.");
}
}
}

View File

@ -7,6 +7,7 @@ include ':dd-java-agent:testing'
include ':dd-java-agent:tooling'
include ':dd-java-agent-ittests'
include ':dd-java-agent-perftests'
include ':dd-java-agent-perftests:jetty-perftest'
include ':dd-trace-examples:dropwizard-mongo-client'
include ':dd-trace-examples:spring-boot-jdbc'
include ':dd-trace-examples:rest-spark'