diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2017-12-07 15:56:06 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2017-12-14 14:46:48 +0000 |
commit | e5fa4cf948b1275fdca6e06f88740f601b8704dc (patch) | |
tree | 30ca48676bddf9907c946541a7829a19bc3a1fa2 | |
parent | b27bada7c6b22d83557c6592d8c00fea2a6c35fe (diff) |
add jdisc Metric wiring
rename metric (will be tagged as a "container" metric anyway)
12 files changed, 38 insertions, 16 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java index 2243dc1e682..981ea1a9829 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java @@ -74,6 +74,10 @@ public class VespaMetricSet { private static Set<Metric> getContainerMetrics() { Set<Metric> metrics = new LinkedHashSet<>(); + metrics.add(new Metric("handled.requests.count", "handled.requests")); + metrics.add(new Metric("handled.latency.average")); + metrics.add(new Metric("handled.latency.max")); + metrics.add(new Metric("serverRejectedRequests.rate")); metrics.add(new Metric("serverRejectedRequests.count")); diff --git a/container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java b/container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java index f0170d65b66..1e5c22f4023 100644 --- a/container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java +++ b/container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java @@ -2,6 +2,7 @@ package com.yahoo.container.config; import com.google.inject.Inject; +import com.yahoo.jdisc.Metric; import com.yahoo.container.ConfigHack; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; @@ -25,8 +26,8 @@ import java.util.concurrent.Executor; public class StatisticsRequestHandler extends ThreadedHttpRequestHandler { @Inject - public StatisticsRequestHandler(Executor executor) { - super(executor); + public StatisticsRequestHandler(Executor executor, Metric metric) { + super(executor, metric); } @Override diff --git a/container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java b/container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java index 335d0601adc..241ae269fc9 100644 --- a/container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java +++ b/container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java @@ -1,8 +1,11 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.handler; +import com.google.inject.Inject; + import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; +import com.yahoo.jdisc.Metric; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; @@ -22,8 +25,9 @@ public class AccessLogRequestHandler extends ThreadedHttpRequestHandler { private final CircularArrayAccessLogKeeper circularArrayAccessLogKeeper; private final JsonFactory jsonFactory = new JsonFactory(); - public AccessLogRequestHandler(Executor executor, CircularArrayAccessLogKeeper circularArrayAccessLogKeeper) { - super(executor); + @Inject + public AccessLogRequestHandler(Executor executor, Metric metric, CircularArrayAccessLogKeeper circularArrayAccessLogKeeper) { + super(executor, metric); this.circularArrayAccessLogKeeper = circularArrayAccessLogKeeper; } 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 f6e1c1d6d5a..861ee40dbf5 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 @@ -101,7 +101,7 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { */ @Override public final ContentChannel handleRequest(Request request, ResponseHandler responseHandler) { - metric.add("container.handled.requests", 1, contextFor(request.getBindingMatch())); + metric.add("handled.requests", 1, contextFor(request.getBindingMatch())); if (request.getTimeout(TimeUnit.SECONDS) == null) { Duration timeout = getTimeout(); if (timeout != null) { @@ -195,7 +195,7 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler { if ( tryHasResponded()) throw new IllegalStateException("Response already handled"); ContentChannel cc = responseHandler.handleResponse(response); long millis = request.timeElapsed(TimeUnit.MILLISECONDS); - metric.set("container.handled.latency", millis, contextFor(request.getBindingMatch())); + metric.set("handled.latency", millis, contextFor(request.getBindingMatch())); return cc; } diff --git a/container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java b/container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java index 6e69cd77304..14869654267 100644 --- a/container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java @@ -17,7 +17,7 @@ public class AccessLogRequestHandlerTest { private final CircularArrayAccessLogKeeper keeper = new CircularArrayAccessLogKeeper(); private final Executor executor = mock(Executor.class); - private final AccessLogRequestHandler handler = new AccessLogRequestHandler(executor, keeper); + private final AccessLogRequestHandler handler = new AccessLogRequestHandler(executor, null, keeper); private final ByteArrayOutputStream out = new ByteArrayOutputStream(); @Test diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerCompatibility.java b/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerCompatibility.java index 7c3a0b03fcd..b1a7b6dbdeb 100755 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerCompatibility.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerCompatibility.java @@ -2,7 +2,9 @@ package com.yahoo.feedhandler; import java.util.concurrent.Executor; +import javax.inject.Inject; +import com.yahoo.jdisc.Metric; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; @@ -12,9 +14,10 @@ public class VespaFeedHandlerCompatibility extends ThreadedHttpRequestHandler { private final VespaFeedHandlerGet getHandler; private final VespaFeedHandler feedHandler; - public VespaFeedHandlerCompatibility(Executor executor, VespaFeedHandlerGet getHandler, + @Inject + public VespaFeedHandlerCompatibility(Executor executor, Metric metric, VespaFeedHandlerGet getHandler, VespaFeedHandler feedHandler) { - super(executor); + super(executor, metric); this.getHandler = getHandler; this.feedHandler = feedHandler; } diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerGet.java b/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerGet.java index 7229ea45b83..70631e0e66c 100755 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerGet.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerGet.java @@ -3,7 +3,9 @@ package com.yahoo.feedhandler; import java.util.Collections; import java.util.concurrent.Executor; +import javax.inject.Inject; +import com.yahoo.jdisc.Metric; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; @@ -13,8 +15,9 @@ public class VespaFeedHandlerGet extends ThreadedHttpRequestHandler { private final SearchHandler searchHandler; - public VespaFeedHandlerGet(SearchHandler searchHandler, Executor executor) { - super(executor, null, true); + @Inject + public VespaFeedHandlerGet(SearchHandler searchHandler, Executor executor, Metric metric) { + super(executor, metric, true); this.searchHandler = searchHandler; } diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerVisit.java b/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerVisit.java index 668ac972b3f..c9af0933799 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerVisit.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerVisit.java @@ -3,7 +3,9 @@ package com.yahoo.feedhandler; import java.util.Collections; import java.util.concurrent.Executor; +import javax.inject.Inject; +import com.yahoo.jdisc.Metric; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; @@ -16,8 +18,9 @@ public class VespaFeedHandlerVisit extends ThreadedHttpRequestHandler { private final SearchHandler searchHandler; - public VespaFeedHandlerVisit(SearchHandler searchHandler, Executor executor) { - super(executor, null, true); + @Inject + public VespaFeedHandlerVisit(SearchHandler searchHandler, Executor executor, Metric metric) { + super(executor, metric, true); this.searchHandler = searchHandler; } diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java index 744a7313c50..ddc652dedbb 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java @@ -68,7 +68,7 @@ public class FeedHandler extends LoggingRequestHandler { AccessLog accessLog, ThreadpoolConfig threadpoolConfig, MetricReceiver metricReceiver) throws Exception { - super(executor, accessLog); + super(executor, accessLog, metric); DocumentApiMetrics metricsHelper = new DocumentApiMetrics(metricReceiver, "vespa.http.server"); feedHandlerV3 = new FeedHandlerV3(executor, documentManagerConfig, sessionCache, metric, accessLog, threadpoolConfig, metricsHelper); docTypeManager = createDocumentManager(documentManagerConfig); diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java index 3c712f1e8e0..28bcb50a144 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java @@ -56,7 +56,7 @@ public class FeedHandlerV3 extends LoggingRequestHandler { AccessLog accessLog, ThreadpoolConfig threadpoolConfig, DocumentApiMetrics metricsHelper) throws Exception { - super(executor, accessLog); + super(executor, accessLog, metric); docTypeManager = new DocumentTypeManager(documentManagerConfig); this.sessionCache = sessionCache; feedReplyHandler = new FeedReplyReader(metric, metricsHelper); diff --git a/vespaclient-core/src/main/java/com/yahoo/feedapi/FeedContext.java b/vespaclient-core/src/main/java/com/yahoo/feedapi/FeedContext.java index 168f5cd767f..a918ed6b44f 100755 --- a/vespaclient-core/src/main/java/com/yahoo/feedapi/FeedContext.java +++ b/vespaclient-core/src/main/java/com/yahoo/feedapi/FeedContext.java @@ -41,6 +41,10 @@ public class FeedContext { return metrics; } + public Metric getMetricAPI() { + return metric; + } + public ClusterList getClusterList() { return clusterList; } diff --git a/vespaclient-core/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerBase.java b/vespaclient-core/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerBase.java index c956094ecc7..05d0c2b81bd 100755 --- a/vespaclient-core/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerBase.java +++ b/vespaclient-core/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerBase.java @@ -47,7 +47,7 @@ public abstract class VespaFeedHandlerBase extends ThreadedHttpRequestHandler { } public VespaFeedHandlerBase(FeedContext context, Executor executor, long defaultTimeoutMillis) throws Exception { - super(executor); + super(executor, context.getMetricAPI()); this.context = context; this.defaultTimeoutMillis = defaultTimeoutMillis; } |