summaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2021-08-02 13:10:07 +0200
committerOla Aunrønning <olaa@verizonmedia.com>2021-08-02 13:10:07 +0200
commit8743935c1090d4121d3a85c125f4001983a6260f (patch)
tree37164ff69b1b25f43844be82d87ad5bbbdb205a8 /metrics-proxy
parente009e3c94e2b8f3c72fefca15023f9006078f275 (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.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/yamas/YamasResponse.java34
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);
+ }
+
+}