diff options
Diffstat (limited to 'metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandler.java')
-rw-r--r-- | metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandler.java | 13 |
1 files changed, 11 insertions, 2 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); |