diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2021-08-02 13:10:07 +0200 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2021-08-02 13:10:07 +0200 |
commit | 8743935c1090d4121d3a85c125f4001983a6260f (patch) | |
tree | 37164ff69b1b25f43844be82d87ad5bbbdb205a8 /metrics-proxy | |
parent | e009e3c94e2b8f3c72fefca15023f9006078f275 (diff) |
Don't serialize metrics to String
Diffstat (limited to 'metrics-proxy')
-rw-r--r-- | metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasHandler.java | 4 | ||||
-rw-r--r-- | metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasResponse.java | 34 |
2 files changed, 36 insertions, 2 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasHandler.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasHandler.java index 2b22ea101d8..0e1c818a7c2 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasHandler.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasHandler.java @@ -57,11 +57,11 @@ public class YamasHandler extends HttpHandlerBase { return Optional.empty(); } - private JsonResponse valuesResponse(String consumer) { + private HttpResponse valuesResponse(String consumer) { try { List<MetricsPacket> metrics = consumer == null ? valuesFetcher.fetchAllMetrics() : valuesFetcher.fetch(consumer); metrics.addAll(nodeMetricGatherer.gatherMetrics()); // TODO: Currently only add these metrics in this handler. Eventually should be included in all handlers - return new JsonResponse(OK, YamasJsonUtil.toYamasArray(metrics, true).serialize()); + return new YamasResponse(OK, YamasJsonUtil.toYamasArray(metrics, true)); } catch (JsonRenderingException e) { return new ErrorResponse(INTERNAL_SERVER_ERROR, e.getMessage()); } diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasResponse.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasResponse.java new file mode 100644 index 00000000000..deeabb59cbe --- /dev/null +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasResponse.java @@ -0,0 +1,34 @@ +package ai.vespa.metricsproxy.http.yamas; + +import ai.vespa.metricsproxy.metric.model.json.JacksonUtil; +import ai.vespa.metricsproxy.metric.model.json.YamasArrayJsonModel; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yahoo.container.jdisc.HttpResponse; + +import java.io.IOException; +import java.io.OutputStream; + +/** + * @author olaa + */ +public class YamasResponse extends HttpResponse { + + private final YamasArrayJsonModel data; + + public YamasResponse(int code, YamasArrayJsonModel data) { + super(code); + this.data = data; + } + + @Override + public String getContentType() { + return "application/json"; + } + + @Override + public void render(OutputStream outputStream) throws IOException { + ObjectMapper mapper = JacksonUtil.createObjectMapper(); + mapper.writeValue(outputStream, data); + } + +} |