diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-09-29 08:10:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-29 08:10:05 +0200 |
commit | c6aded1606112a54969f56403085ca90d61dac8f (patch) | |
tree | db29615090e57241998ec0deb1c55a49632c3623 /container-core | |
parent | 09bf1d5f22a7ae98191c94e9be591994b5125557 (diff) |
Revert "Jonmv/async doc v1 implementation"
Diffstat (limited to 'container-core')
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java | 54 | ||||
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java | 32 |
2 files changed, 28 insertions, 58 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java b/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java deleted file mode 100644 index cfb48339dbe..00000000000 --- a/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.yahoo.container.core; - -import com.yahoo.jdisc.Metric; -import com.yahoo.jdisc.Request; -import com.yahoo.jdisc.application.BindingMatch; -import com.yahoo.jdisc.application.UriPattern; -import com.yahoo.jdisc.handler.ResponseHandler; - -import java.net.URI; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -/** - * Common HTTP request handler metrics code. - * - * @author jonmv - */ -public class HandlerMetricContextUtil { - - public static void onHandle(Request request, Metric metric, Class<?> handlerClass) { - metric.add("handled.requests", 1, contextFor(request, metric, handlerClass)); - } - - public static void onHandled(Request request, Metric metric, Class<?> handlerClass) { - metric.set("handled.latency", request.timeElapsed(TimeUnit.MILLISECONDS), contextFor(request, metric, handlerClass)); - } - - public static Metric.Context contextFor(Request request, Metric metric, Class<?> handlerClass) { - return contextFor(request, Map.of(), metric, handlerClass); - } - - public static Metric.Context contextFor(Request request, Map<String, String> extraDimensions, Metric metric, Class<?> handlerClass) { - BindingMatch<?> match = request.getBindingMatch(); - if (match == null) return null; - UriPattern matched = match.matched(); - if (matched == null) return null; - String name = matched.toString(); - String endpoint = request.headers().containsKey("Host") ? request.headers().get("Host").get(0) : null; - - Map<String, String> dimensions = new HashMap<>(); - dimensions.put("handler", name); - if (endpoint != null) { - dimensions.put("endpoint", endpoint); - } - URI uri = request.getUri(); - dimensions.put("scheme", uri.getScheme()); - dimensions.put("port", Integer.toString(uri.getPort())); - dimensions.put("handler-name", handlerClass.getName()); - dimensions.putAll(extraDimensions); - return metric.createContext(dimensions); - } - -} diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java index f5f8b428535..ab768dba0d2 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java @@ -6,6 +6,8 @@ import com.yahoo.jdisc.Metric; import com.yahoo.jdisc.Request; import com.yahoo.jdisc.ResourceReference; import com.yahoo.jdisc.Response; +import com.yahoo.jdisc.application.BindingMatch; +import com.yahoo.jdisc.application.UriPattern; import com.yahoo.jdisc.handler.AbstractRequestHandler; import com.yahoo.jdisc.handler.BufferedContentChannel; import com.yahoo.jdisc.handler.ContentChannel; @@ -13,9 +15,10 @@ import com.yahoo.jdisc.handler.OverloadException; import com.yahoo.jdisc.handler.ReadableContentChannel; import com.yahoo.jdisc.handler.ResponseDispatch; import com.yahoo.jdisc.handler.ResponseHandler; -import com.yahoo.container.core.HandlerMetricContextUtil; +import java.net.URI; import java.time.Duration; +import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.concurrent.Executor; @@ -76,9 +79,29 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { } Metric.Context contextFor(Request request, Map<String, String> extraDimensions) { - return HandlerMetricContextUtil.contextFor(request, extraDimensions, metric, getClass()); + BindingMatch<?> match = request.getBindingMatch(); + if (match == null) return null; + UriPattern matched = match.matched(); + if (matched == null) return null; + String name = matched.toString(); + String endpoint = request.headers().containsKey("Host") ? request.headers().get("Host").get(0) : null; + + Map<String, String> dimensions = new HashMap<>(); + dimensions.put("handler", name); + if (endpoint != null) { + dimensions.put("endpoint", endpoint); + } + URI uri = request.getUri(); + dimensions.put("scheme", uri.getScheme()); + dimensions.put("port", Integer.toString(uri.getPort())); + String handlerClassName = getClass().getName(); + dimensions.put("handler-name", handlerClassName); + dimensions.putAll(extraDimensions); + return this.metric.createContext(dimensions); } + private Metric.Context contextFor(Request request) { return contextFor(request, Map.of()); } + /** * Handles a request by assigning a worker thread to it. * @@ -86,7 +109,7 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { */ @Override public final ContentChannel handleRequest(Request request, ResponseHandler responseHandler) { - HandlerMetricContextUtil.onHandle(request, metric, getClass()); + metric.add("handled.requests", 1, contextFor(request)); if (request.getTimeout(TimeUnit.SECONDS) == null) { Duration timeout = getTimeout(); if (timeout != null) { @@ -189,7 +212,8 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { public ContentChannel handleResponse(Response response) { if ( tryHasResponded()) throw new IllegalStateException("Response already handled"); ContentChannel cc = responseHandler.handleResponse(response); - HandlerMetricContextUtil.onHandled(request, metric, getClass()); + long millis = request.timeElapsed(TimeUnit.MILLISECONDS); + metric.set("handled.latency", millis, contextFor(request)); return cc; } |