aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-09-28 20:28:29 +0200
committerJon Marius Venstad <venstad@gmail.com>2020-09-28 20:28:29 +0200
commit6c2b2cb1cea66f7f9dbdb7ac366bdeda00194c60 (patch)
treee77da383c00e012ce07aab129eca316c7255f518 /container-core/src/main
parent29f45f8cfdb15e87d3b0dfe312fdcdc39e84cf41 (diff)
Common metrics code and abi spec
Diffstat (limited to 'container-core/src/main')
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java12
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java7
2 files changed, 13 insertions, 6 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
index 7cfbab0dffa..cfb48339dbe 100644
--- a/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java
+++ b/container-core/src/main/java/com/yahoo/container/core/HandlerMetricContextUtil.java
@@ -4,18 +4,28 @@ 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 conversion from a handled http request to a metric context.
+ * 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);
}
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 f0583f82cc2..1d48202b7b7 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
@@ -79,8 +79,6 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler {
return HandlerMetricContextUtil.contextFor(request, extraDimensions, metric, getClass());
}
- private Metric.Context contextFor(Request request) { return contextFor(request, Map.of()); }
-
/**
* Handles a request by assigning a worker thread to it.
*
@@ -88,7 +86,7 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler {
*/
@Override
public final ContentChannel handleRequest(Request request, ResponseHandler responseHandler) {
- metric.add("handled.requests", 1, contextFor(request));
+ HandlerMetricContextUtil.onHandle(request, metric, getClass());
if (request.getTimeout(TimeUnit.SECONDS) == null) {
Duration timeout = getTimeout();
if (timeout != null) {
@@ -189,8 +187,7 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler {
public ContentChannel handleResponse(Response response) {
if ( tryHasResponded()) throw new IllegalStateException("Response already handled");
ContentChannel cc = responseHandler.handleResponse(response);
- long millis = request.timeElapsed(TimeUnit.MILLISECONDS);
- metric.set("handled.latency", millis, contextFor(request));
+ HandlerMetricContextUtil.onHandled(request, metric, getClass());
return cc;
}