diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-09-21 23:44:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-21 23:44:55 +0200 |
commit | 1b688e7a77055d555c8fbe90856593b15c10cfa8 (patch) | |
tree | 3220ef4dd818a2127f714b90a93809891eec1a85 | |
parent | 16c799289d15eb30f55675373b254210396fad17 (diff) | |
parent | 643c51d6d7fce92d5f0703acf9e09e25a7408337 (diff) |
Merge pull request #19233 from vespa-engine/balder/do-not-poll-default-unless-requested-to-do-sov7.470.24
Do not fetch metrics for default consumer unless explicitly asked to …
3 files changed, 8 insertions, 3 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetriever.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetriever.java index 1bbda1a463c..2603b9025c2 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetriever.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetriever.java @@ -63,7 +63,6 @@ public class ApplicationMetricsRetriever extends AbstractComponent implements Ru taskTimeout = timeout(clients.size()); stopped = false; consumerSet = new HashSet<>(); - consumerSet.add(defaultMetricsConsumerId); httpClient.start(); pollThread = new Thread(this, "metrics-poller"); pollThread.setDaemon(true); @@ -114,7 +113,7 @@ public class ApplicationMetricsRetriever extends AbstractComponent implements Ru super.deconstruct(); } - public Map<Node, List<MetricsPacket>> getMetrics() { + Map<Node, List<MetricsPacket>> getMetrics() { return getMetrics(defaultMetricsConsumerId); } @@ -141,7 +140,8 @@ public class ApplicationMetricsRetriever extends AbstractComponent implements Ru } long before = pollCount; pollThread.notifyAll(); - while (pollCount == before) { + while (pollCount <= before + 1) { + pollThread.notifyAll(); pollThread.wait(); } } diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java index 5f1c045781c..d568e83c9ad 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java @@ -85,6 +85,7 @@ public class ApplicationMetricsHandlerTest { ApplicationMetricsHandler handler = new ApplicationMetricsHandler(Executors.newSingleThreadExecutor(), applicationMetricsRetriever, getMetricsConsumers()); + applicationMetricsRetriever.getMetrics(defaultMetricsConsumerId); applicationMetricsRetriever.getMetrics(ConsumerId.toConsumerId(CUSTOM_CONSUMER)); applicationMetricsRetriever.startPollAndWait(); testDriver = new RequestHandlerTestDriver(handler); diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java index 09cc355d292..c98b962f671 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java @@ -53,6 +53,7 @@ public class ApplicationMetricsRetrieverTest { .willReturn(aResponse().withBody(RESPONSE))); ApplicationMetricsRetriever retriever = new ApplicationMetricsRetriever(config); + retriever.getMetrics(); retriever.startPollAndWait(); var metricsByNode = retriever.getMetrics(); assertEquals(1, metricsByNode.size()); @@ -71,6 +72,7 @@ public class ApplicationMetricsRetrieverTest { .willReturn(aResponse().withBody(RESPONSE))); ApplicationMetricsRetriever retriever = new ApplicationMetricsRetriever(config); + retriever.getMetrics(); retriever.startPollAndWait(); var metricsByNode = retriever.getMetrics(); assertEquals(2, metricsByNode.size()); @@ -100,6 +102,7 @@ public class ApplicationMetricsRetrieverTest { .willReturn(aResponse().withBody(RESPONSE))); ApplicationMetricsRetriever retriever = new ApplicationMetricsRetriever(config); + retriever.getMetrics(); retriever.startPollAndWait(); var metricsByNode = retriever.getMetrics(); assertEquals(2, metricsByNode.size()); @@ -134,6 +137,7 @@ public class ApplicationMetricsRetrieverTest { .withFixedDelay(10))); ApplicationMetricsRetriever retriever = new ApplicationMetricsRetriever(config); + retriever.getMetrics(); retriever.setTaskTimeout(Duration.ofMillis(1)); retriever.startPollAndWait(); assertTrue(retriever.getMetrics().get(node).isEmpty()); |