aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2024-05-30 11:23:15 +0200
committerjonmv <venstad@gmail.com>2024-05-30 11:23:15 +0200
commit03c3df3cca52f1b7554de19d3423a7c1d72ec45e (patch)
tree4fe4399ee3d41ea401e3fb1254e675d301d030cf /metrics-proxy
parentbfa11fe2f9d24b40400476fa72e5f3cfbfc274dc (diff)
Add new response class, and limit to max 1MB pending output
Diffstat (limited to 'metrics-proxy')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsJsonResponse.java31
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/PrometheusResponse.java5
2 files changed, 36 insertions, 0 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsJsonResponse.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsJsonResponse.java
new file mode 100644
index 00000000000..b927db790b2
--- /dev/null
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsJsonResponse.java
@@ -0,0 +1,31 @@
+package ai.vespa.metricsproxy.http;
+
+import com.yahoo.container.jdisc.HttpResponse;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.function.Consumer;
+
+/**
+ * @author jonmv
+ */
+public class MetricsJsonResponse extends HttpResponse {
+
+ private final Consumer<OutputStream> modelWriter;
+
+ public MetricsJsonResponse(int status, Consumer<OutputStream> modelWriter) {
+ super(status);
+ this.modelWriter = modelWriter;
+ }
+
+ @Override
+ public void render(OutputStream outputStream) throws IOException {
+ modelWriter.accept(outputStream);
+ }
+
+ @Override
+ public long maxPendingBytes() {
+ return 1 << 20;
+ }
+
+}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/PrometheusResponse.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/PrometheusResponse.java
index c9e60510d56..e0c74671c9c 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/PrometheusResponse.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/PrometheusResponse.java
@@ -27,4 +27,9 @@ public class PrometheusResponse extends HttpResponse {
writer.flush();
}
+ @Override
+ public long maxPendingBytes() {
+ return 1 << 20;
+ }
+
}