summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-07-06 15:59:59 +0200
committerBjørn Christian Seime <bjorncs@oath.com>2018-07-06 16:02:57 +0200
commitfe1028e5ae93593dd42ec9358e1aeb17d507d993 (patch)
tree174445f55f6428d77b503e1c12750e51ff72d020 /jdisc_http_service
parentb0bae44cb79ffa2b28bded8c075986cb6414c862 (diff)
Revert "Add matched binding as dimension when available"
This reverts commit 7c91a519d21689b66680c20af239d0882c7ade8c.
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java7
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscFilterInvokerFilter.java2
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java9
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java7
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java1
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java25
6 files changed, 16 insertions, 35 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java
index a07ad08d797..db7670b604a 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java
@@ -2,6 +2,7 @@
package com.yahoo.jdisc.http.server.jetty;
import com.yahoo.container.logging.AccessLogEntry;
+import com.yahoo.jdisc.Metric.Context;
import com.yahoo.jdisc.References;
import com.yahoo.jdisc.ResourceReference;
import com.yahoo.jdisc.Response;
@@ -21,7 +22,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
-import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -54,7 +54,7 @@ class HttpRequestDispatch {
public HttpRequestDispatch(JDiscContext jDiscContext,
AccessLogEntry accessLogEntry,
- Map<String, Object> requestMetricDimensions,
+ Context metricContext,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) throws IOException {
this.jDiscContext = jDiscContext;
@@ -62,7 +62,7 @@ class HttpRequestDispatch {
requestHandler = newRequestHandler(jDiscContext, accessLogEntry, servletRequest);
this.jettyRequest = (Request) servletRequest;
- this.metricReporter = new MetricReporter(jDiscContext.metric, requestMetricDimensions, jettyRequest.getTimeStamp());
+ this.metricReporter = new MetricReporter(jDiscContext.metric, metricContext, jettyRequest.getTimeStamp());
honourMaxKeepAliveRequests();
this.servletResponseController = new ServletResponseController(
servletRequest,
@@ -159,7 +159,6 @@ class HttpRequestDispatch {
try (ResourceReference ref = References.fromResource(jdiscRequest)) {
HttpRequestFactory.copyHeaders(jettyRequest, jdiscRequest);
requestContentChannel = requestHandler.handleRequest(jdiscRequest, servletResponseController.responseHandler);
- metricReporter.setBindingMatch(jdiscRequest.getBindingMatch());
}
ServletInputStream servletInputStream = jettyRequest.getInputStream();
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscFilterInvokerFilter.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscFilterInvokerFilter.java
index ee6d89dd088..609456c562a 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscFilterInvokerFilter.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscFilterInvokerFilter.java
@@ -127,7 +127,7 @@ class JDiscFilterInvokerFilter implements Filter {
final AccessLogEntry accessLogEntry = null; // Not used in this context.
return new HttpRequestDispatch(jDiscContext,
accessLogEntry,
- getConnector(request).getRequestMetricDimensions(request),
+ getConnector(request).getRequestMetricContext(request),
request, response);
} catch (IOException e) {
throw throwUnchecked(e);
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java
index 3b81dd94e11..2f5fe7612c8 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServlet.java
@@ -14,7 +14,6 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -91,7 +90,7 @@ class JDiscHttpServlet extends HttpServlet {
throws ServletException, IOException {
request.setAttribute(JDiscServerConnector.REQUEST_ATTRIBUTE, getConnector(request));
- Metric.Context metricContext = context.metric.createContext(getRequestMetricDimensions(request));
+ Metric.Context metricContext = getMetricContext(request);
context.metric.add(JettyHttpServer.Metrics.NUM_REQUESTS, 1, metricContext);
context.metric.add(JettyHttpServer.Metrics.JDISC_HTTP_REQUESTS, 1, metricContext);
context.metric.add(JettyHttpServer.Metrics.MANHATTAN_NUM_REQUESTS, 1, metricContext);
@@ -114,7 +113,7 @@ class JDiscHttpServlet extends HttpServlet {
try {
switch (request.getDispatcherType()) {
case REQUEST:
- new HttpRequestDispatch(context, accessLogEntry, getRequestMetricDimensions(request), request, response)
+ new HttpRequestDispatch(context, accessLogEntry, getMetricContext(request), request, response)
.dispatch();
break;
default:
@@ -130,8 +129,8 @@ class JDiscHttpServlet extends HttpServlet {
}
}
- private static Map<String, Object> getRequestMetricDimensions(HttpServletRequest request) {
- return JDiscServerConnector.fromRequest(request).getRequestMetricDimensions(request);
+ private static Metric.Context getMetricContext(HttpServletRequest request) {
+ return JDiscServerConnector.fromRequest(request).getRequestMetricContext(request);
}
private static String formatAttributes(final HttpServletRequest request) {
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
index 118079a2fba..8825ccdfc60 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java
@@ -15,7 +15,6 @@ import java.lang.reflect.Field;
import java.net.Socket;
import java.net.SocketException;
import java.nio.channels.ServerSocketChannel;
-import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.logging.Level;
@@ -124,12 +123,12 @@ class JDiscServerConnector extends ServerConnector {
return metricCtx;
}
- public Map<String, Object> getRequestMetricDimensions(HttpServletRequest request) {
- Map<String, Object> props = new HashMap<>();
+ public Metric.Context getRequestMetricContext(HttpServletRequest request) {
+ Map<String, Object> props = new TreeMap<>();
props.put(JettyHttpServer.Metrics.NAME_DIMENSION, connectorName);
props.put(JettyHttpServer.Metrics.PORT_DIMENSION, listenPort);
props.put(JettyHttpServer.Metrics.METHOD_DIMENSION, request.getMethod());
- return props;
+ return metric.createContext(props);
}
public static JDiscServerConnector fromRequest(ServletRequest request) {
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 24367863fbc..f149d6eb34d 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
@@ -67,7 +67,6 @@ public class JettyHttpServer extends AbstractServerProvider {
String NAME_DIMENSION = "serverName";
String PORT_DIMENSION = "serverPort";
String METHOD_DIMENSION = "httpMethod";
- String HANDLER_DIMENSION = "handler";
String NUM_OPEN_CONNECTIONS = "serverNumOpenConnections";
String NUM_CONNECTIONS_OPEN_MAX = "serverConnectionsOpenMax";
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java
index fc64e90d463..53f330bbc7e 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/MetricReporter.java
@@ -3,25 +3,20 @@ package com.yahoo.jdisc.http.server.jetty;
import com.yahoo.jdisc.Metric;
import com.yahoo.jdisc.Metric.Context;
-import com.yahoo.jdisc.application.BindingMatch;
-import com.yahoo.jdisc.application.UriPattern;
-import com.yahoo.jdisc.handler.RequestHandler;
+
import com.yahoo.jdisc.http.server.jetty.JettyHttpServer.Metrics;
+import org.jetbrains.annotations.Nullable;
-import java.util.HashMap;
-import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* Responsible for metric reporting for JDisc http request handler support.
- *
* @author Tony Vaagenes
*/
public class MetricReporter {
private final Metric metric;
- private volatile Context context;
- private final Map<String, Object> requestDimensions;
+ private final @Nullable Context context;
private final long requestStartTime;
@@ -29,22 +24,12 @@ public class MetricReporter {
private final AtomicBoolean firstSetOfTimeToFirstByte = new AtomicBoolean(true);
- public MetricReporter(Metric metric, Map<String, Object> requestDimensions, long requestStartTime) {
+ public MetricReporter(Metric metric, @Nullable Context context, long requestStartTime) {
this.metric = metric;
- this.context = metric.createContext(requestDimensions);
- this.requestDimensions = requestDimensions;
+ this.context = context;
this.requestStartTime = requestStartTime;
}
- public void setBindingMatch(BindingMatch<?> bindingMatch) {
- if (bindingMatch == null) return;
- UriPattern pattern = bindingMatch.matched();
- if (pattern == null) return;
- Map<String, Object> combinedDimensions = new HashMap<>(requestDimensions);
- combinedDimensions.put(Metrics.HANDLER_DIMENSION, pattern.toString());
- this.context = metric.createContext(combinedDimensions);
- }
-
@SuppressWarnings("deprecation")
public void successfulWrite(int numBytes) {
setTimeToFirstByteFirstTime();