diff options
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()); |