diff options
author | gjoranv <gv@verizonmedia.com> | 2019-09-02 10:48:24 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-09-02 10:48:24 +0200 |
commit | 6b50a2c7872add161ac651706ae438472fe934b3 (patch) | |
tree | 1016f039dda7f77a7a17cf9c528d35b52040a9fd /metrics-proxy | |
parent | 7a5514c7918a0b18d5f7fd1906edc58b5310d4f0 (diff) |
Improve exception handling to avoid silent failures
Diffstat (limited to 'metrics-proxy')
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); } } |