summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorOlli Virtanen <olli.virtanen@oath.com>2018-08-08 13:49:24 +0200
committerOlli Virtanen <olli.virtanen@oath.com>2018-08-08 13:49:24 +0200
commit115264753df26e4207430cc1ba1832f0dd012a9c (patch)
treeb306daf559c11405be12bd081eea8ede40fa55b3 /jdisc_http_service
parent31a23eebae06d94de5dc3cb402130c0c7aa66991 (diff)
Include statisticsHandler in chain
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java24
1 files changed, 20 insertions, 4 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
index 31521c02d37..699aff775cf 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java
@@ -25,6 +25,7 @@ import org.eclipse.jetty.server.ServerConnectionStatistics;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.AbstractHandlerContainer;
import org.eclipse.jetty.server.handler.HandlerCollection;
+import org.eclipse.jetty.server.handler.StatisticsHandler;
import org.eclipse.jetty.server.handler.gzip.GzipHandler;
import org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor;
import org.eclipse.jetty.servlet.FilterHolder;
@@ -239,8 +240,11 @@ public class JettyHttpServer extends AbstractServerProvider {
HttpResponseStatisticsCollector statisticsCollector = new HttpResponseStatisticsCollector();
statisticsCollector.setHandler(gzipHandler);
+ StatisticsHandler statisticsHandler = newStatisticsHandler();
+ statisticsHandler.setHandler(statisticsCollector);
+
HandlerCollection handlerCollection = new HandlerCollection();
- handlerCollection.setHandlers(new Handler[] { statisticsCollector });
+ handlerCollection.setHandlers(new Handler[] { statisticsHandler });
return handlerCollection;
}
@@ -323,10 +327,16 @@ public class JettyHttpServer extends AbstractServerProvider {
public void run() {
HttpResponseStatisticsCollector statisticsCollector = ((AbstractHandlerContainer) server.getHandler())
.getChildHandlerByClass(HttpResponseStatisticsCollector.class);
- if (statisticsCollector == null)
- return;
+ if (statisticsCollector != null) {
+ setServerMetrics(statisticsCollector);
+ }
- setServerMetrics(statisticsCollector);
+ // reset statisticsHandler to preserve earlier behavior
+ StatisticsHandler statisticsHandler = ((AbstractHandlerContainer) server.getHandler())
+ .getChildHandlerByClass(StatisticsHandler.class);
+ if (statisticsHandler != null) {
+ statisticsHandler.statsReset();
+ }
for (Connector connector : server.getConnectors()) {
setConnectorMetrics((JDiscServerConnector)connector);
@@ -364,6 +374,12 @@ public class JettyHttpServer extends AbstractServerProvider {
metric.set(Metrics.CONNECTION_DURATION_STD_DEV, statistics.getConnectionDurationStdDev(), connector.getConnectorMetricContext());
}
+ private StatisticsHandler newStatisticsHandler() {
+ StatisticsHandler statisticsHandler = new StatisticsHandler();
+ statisticsHandler.statsReset();
+ return statisticsHandler;
+ }
+
private GzipHandler newGzipHandler(ServerConfig serverConfig) {
GzipHandler gzipHandler = new GzipHandlerWithVaryHeaderFixed();
gzipHandler.setCompressionLevel(serverConfig.responseCompressionLevel());