aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2017-12-14 18:51:44 +0100
committerGitHub <noreply@github.com>2017-12-14 18:51:44 +0100
commit7e7da18ffeaeb3c997af5f60485c6826e71efbfe (patch)
tree30ca48676bddf9907c946541a7829a19bc3a1fa2
parentb27bada7c6b22d83557c6592d8c00fea2a6c35fe (diff)
parente5fa4cf948b1275fdca6e06f88740f601b8704dc (diff)
Merge pull request #4447 from vespa-engine/arnej/add-metrics-to-handlers-2
add jdisc Metric wiring
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java4
-rw-r--r--container-core/src/main/java/com/yahoo/container/config/StatisticsRequestHandler.java5
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/AccessLogRequestHandler.java8
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java4
-rw-r--r--container-core/src/test/java/com/yahoo/container/handler/AccessLogRequestHandlerTest.java2
-rwxr-xr-xvespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerCompatibility.java7
-rwxr-xr-xvespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerGet.java7
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerVisit.java7
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandler.java2
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedHandlerV3.java2
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedapi/FeedContext.java4
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedhandler/VespaFeedHandlerBase.java2
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;
}