diff options
2 files changed, 14 insertions, 3 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandler.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandler.java index e8da690ea9b..d73561b5eff 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandler.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandler.java @@ -5,7 +5,10 @@ import ai.vespa.metricsproxy.core.MetricsConsumers; import ai.vespa.metricsproxy.core.MetricsManager; import ai.vespa.metricsproxy.http.TextResponse; import ai.vespa.metricsproxy.http.ValuesFetcher; +import ai.vespa.metricsproxy.metric.dimensions.ApplicationDimensions; +import ai.vespa.metricsproxy.metric.dimensions.NodeDimensions; import ai.vespa.metricsproxy.metric.model.MetricsPacket; +import ai.vespa.metricsproxy.node.NodeMetricGatherer; import ai.vespa.metricsproxy.service.VespaServices; import com.yahoo.component.annotation.Inject; import com.yahoo.container.handler.metrics.HttpHandlerBase; @@ -13,6 +16,7 @@ import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.restapi.Path; import java.net.URI; +import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.concurrent.Executor; @@ -31,14 +35,18 @@ public class PrometheusHandler extends HttpHandlerBase { static final String VALUES_PATH = V1_PATH + "/values"; private final ValuesFetcher valuesFetcher; + private final NodeMetricGatherer nodeMetricGatherer; @Inject public PrometheusHandler(Executor executor, MetricsManager metricsManager, VespaServices vespaServices, - MetricsConsumers metricsConsumers) { + MetricsConsumers metricsConsumers, + ApplicationDimensions applicationDimensions, + NodeDimensions nodeDimensions) { super(executor); valuesFetcher = new ValuesFetcher(metricsManager, vespaServices, metricsConsumers); + this.nodeMetricGatherer = new NodeMetricGatherer(metricsManager, applicationDimensions, nodeDimensions); } @Override @@ -50,7 +58,8 @@ public class PrometheusHandler extends HttpHandlerBase { private TextResponse valuesResponse(String consumer) { try { - List<MetricsPacket> metrics = valuesFetcher.fetch(consumer); + List<MetricsPacket> metrics = new ArrayList<>(valuesFetcher.fetch(consumer)); + metrics.addAll(nodeMetricGatherer.gatherMetrics()); return new TextResponse(OK, toPrometheusModel(metrics).serialize()); } catch (Exception e) { log.log(Level.WARNING, "Got exception when rendering metrics:", e); diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandlerTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandlerTest.java index d6bde07d39a..f8e07c3f2ec 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandlerTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandlerTest.java @@ -35,7 +35,9 @@ public class PrometheusHandlerTest extends HttpHandlerTestBase { PrometheusHandler handler = new PrometheusHandler(Executors.newSingleThreadExecutor(), getMetricsManager(), vespaServices, - getMetricsConsumers()); + getMetricsConsumers(), + getApplicationDimensions(), + getNodeDimensions()); testDriver = new RequestHandlerTestDriver(handler); valuesResponse = testDriver.sendRequest(VALUES_URI).readAll(); } |