summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-07-03 17:05:19 +0200
committerBjørn Christian Seime <bjorncs@oath.com>2018-07-03 17:22:04 +0200
commite3c3b539ee34537c3120302de8cec277da0eaf35 (patch)
treebfc6ecbb43a5961e748ce5c940ce96d445b83833 /jdisc_http_service
parentac35474116eeae036bab468a4314ed3d7295a6e6 (diff)
Add 'httpMethod' dimension to request-specific metric values
Diffstat (limited to 'jdisc_http_service')
-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.java5
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JDiscServerConnector.java16
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/JettyHttpServer.java1
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";