summaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2019-09-02 10:48:24 +0200
committergjoranv <gv@verizonmedia.com>2019-09-02 10:48:24 +0200
commit6b50a2c7872add161ac651706ae438472fe934b3 (patch)
tree1016f039dda7f77a7a17cf9c528d35b52040a9fd /metrics-proxy
parent7a5514c7918a0b18d5f7fd1906edc58b5310d4f0 (diff)
Improve exception handling to avoid silent failures
Diffstat (limited to 'metrics-proxy')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsHandler.java5
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/prometheus/PrometheusHandler.java5
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java3
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JsonRenderingException.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusModel.java5
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusRenderingException.java4
6 files changed, 13 insertions, 13 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsHandler.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsHandler.java
index 1f163dc6b9a..ac89faad8d8 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsHandler.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/MetricsHandler.java
@@ -7,7 +7,6 @@ package ai.vespa.metricsproxy.http;
import ai.vespa.metricsproxy.core.MetricsConsumers;
import ai.vespa.metricsproxy.core.MetricsManager;
import ai.vespa.metricsproxy.metric.model.MetricsPacket;
-import ai.vespa.metricsproxy.metric.model.json.JsonRenderingException;
import ai.vespa.metricsproxy.service.VespaServices;
import com.google.inject.Inject;
import com.yahoo.container.jdisc.HttpResponse;
@@ -17,6 +16,7 @@ import java.net.URI;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.Executor;
+import java.util.logging.Level;
import static ai.vespa.metricsproxy.metric.model.json.GenericJsonUtil.toGenericJsonModel;
import static com.yahoo.jdisc.Response.Status.INTERNAL_SERVER_ERROR;
@@ -51,7 +51,8 @@ public class MetricsHandler extends HttpHandlerBase {
try {
List<MetricsPacket> metrics = valuesFetcher.fetch(consumer);
return new JsonResponse(OK, toGenericJsonModel(metrics).serialize());
- } catch (JsonRenderingException e) {
+ } catch (Exception e) {
+ log.log(Level.WARNING, "Got exception when rendering metrics:", e);
return new ErrorResponse(INTERNAL_SERVER_ERROR, e.getMessage());
}
}
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 02f11c7e900..aeea15ee87e 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
@@ -9,7 +9,6 @@ import ai.vespa.metricsproxy.core.MetricsManager;
import ai.vespa.metricsproxy.http.HttpHandlerBase;
import ai.vespa.metricsproxy.http.TextResponse;
import ai.vespa.metricsproxy.metric.model.MetricsPacket;
-import ai.vespa.metricsproxy.metric.model.json.JsonRenderingException;
import ai.vespa.metricsproxy.service.VespaServices;
import com.google.inject.Inject;
import com.yahoo.container.jdisc.HttpResponse;
@@ -19,6 +18,7 @@ import java.net.URI;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.Executor;
+import java.util.logging.Level;
import static ai.vespa.metricsproxy.metric.model.prometheus.PrometheusUtil.toPrometheusModel;
import static com.yahoo.jdisc.Response.Status.INTERNAL_SERVER_ERROR;
@@ -51,7 +51,8 @@ public class PrometheusHandler extends HttpHandlerBase {
try {
List<MetricsPacket> metrics = valuesFetcher.fetch(consumer);
return new TextResponse(OK, toPrometheusModel(metrics).serialize());
- } catch (JsonRenderingException e) {
+ } catch (Exception e) {
+ log.log(Level.WARNING, "Got exception when rendering metrics:", e);
return new TextResponse(INTERNAL_SERVER_ERROR, e.getMessage());
}
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java
index 03e353cab22..f1e58f83505 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java
@@ -37,8 +37,7 @@ public class GenericJsonModel {
try {
return mapper.writeValueAsString(this);
} catch (IOException e) {
- log.log(Level.WARNING, "Got exception when rendering metrics:", e);
- throw new JsonRenderingException("Could not render metrics. Check the log for details.");
+ throw new JsonRenderingException("Could not render metrics. Check the log for details.", e);
}
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JsonRenderingException.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JsonRenderingException.java
index 02292cea164..82f3c7491fb 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JsonRenderingException.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JsonRenderingException.java
@@ -11,8 +11,8 @@ package ai.vespa.metricsproxy.metric.model.json;
*/
public class JsonRenderingException extends RuntimeException {
- JsonRenderingException(String message) {
- super(message);
+ JsonRenderingException(String message, Throwable cause) {
+ super(message, cause);
}
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusModel.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusModel.java
index 83119a552f1..a87fa236f18 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusModel.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusModel.java
@@ -42,9 +42,8 @@ public class PrometheusModel implements Enumeration<Collector.MetricFamilySample
var writer = new StringWriter();
try {
TextFormat.write004(writer, this);
- } catch (IOException e) {
- log.log(Level.WARNING, "Got exception when rendering metrics:", e);
- throw new PrometheusRenderingException("Could not render metrics. Check the log for details.");
+ } catch (Exception e) {
+ throw new PrometheusRenderingException("Could not render metrics. Check the log for details.", e);
}
return writer.toString();
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusRenderingException.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusRenderingException.java
index 68db7e64bfd..941810a1261 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusRenderingException.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/prometheus/PrometheusRenderingException.java
@@ -9,8 +9,8 @@ package ai.vespa.metricsproxy.metric.model.prometheus;
*/
public class PrometheusRenderingException extends RuntimeException {
- PrometheusRenderingException(String message) {
- super(message);
+ PrometheusRenderingException(String message, Throwable cause) {
+ super(message, cause);
}
}