diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-07-03 17:05:19 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-07-03 17:22:04 +0200 |
commit | e3c3b539ee34537c3120302de8cec277da0eaf35 (patch) | |
tree | bfc6ecbb43a5961e748ce5c940ce96d445b83833 /jdisc_http_service | |
parent | ac35474116eeae036bab468a4314ed3d7295a6e6 (diff) |
Add 'httpMethod' dimension to request-specific metric values
Diffstat (limited to 'jdisc_http_service')
4 files changed, 20 insertions, 4 deletions
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 7227d21e7a2..ccac5e327fc 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).getMetricContext(), + 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 27f72c7b4bf..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 @@ -6,7 +6,6 @@ import com.yahoo.jdisc.Metric; import com.yahoo.jdisc.handler.OverloadException; import javax.servlet.ServletException; -import javax.servlet.ServletRequest; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -130,8 +129,8 @@ class JDiscHttpServlet extends HttpServlet { } } - private static Metric.Context getMetricContext(ServletRequest request) { - return JDiscServerConnector.fromRequest(request).getMetricContext(); + 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 8dd50074c32..c684c40418c 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 @@ -9,6 +9,7 @@ import org.eclipse.jetty.server.ServerConnectionStatistics; import org.eclipse.jetty.server.ServerConnector; import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.lang.reflect.Field; import java.net.Socket; @@ -30,6 +31,9 @@ class JDiscServerConnector extends ServerConnector { private final boolean tcpKeepAlive; private final boolean tcpNoDelay; private final ServerSocketChannel channelOpenedByActivator; + private final Metric metric; + private final String connectorName; + private final int listenPort; JDiscServerConnector(ConnectorConfig config, Metric metric, Server server, ServerSocketChannel channelOpenedByActivator, ConnectionFactory... factories) { @@ -38,6 +42,9 @@ class JDiscServerConnector extends ServerConnector { this.tcpKeepAlive = config.tcpKeepAliveEnabled(); this.tcpNoDelay = config.tcpNoDelay(); this.metricCtx = createMetricContext(config, metric); + this.metric = metric; + this.connectorName = config.name(); + this.listenPort = config.listenPort(); this.statistics = new ServerConnectionStatistics(); addBean(statistics); @@ -116,7 +123,16 @@ class JDiscServerConnector extends ServerConnector { return metricCtx; } + 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 metric.createContext(props); + } + public static JDiscServerConnector fromRequest(ServletRequest request) { return (JDiscServerConnector) request.getAttribute(REQUEST_ATTRIBUTE); } + } 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 c85917c4c7e..4363767c964 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 @@ -66,6 +66,7 @@ public class JettyHttpServer extends AbstractServerProvider { public interface Metrics { String NAME_DIMENSION = "serverName"; String PORT_DIMENSION = "serverPort"; + String METHOD_DIMENSION = "httpMethod"; String NUM_OPEN_CONNECTIONS = "serverNumOpenConnections"; String NUM_CONNECTIONS_OPEN_MAX = "serverConnectionsOpenMax"; |