diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-03-12 11:25:00 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-03-12 11:25:00 +0100 |
commit | 010535d2d5695c4b5bf08976982640a9cee7ec47 (patch) | |
tree | c316dbd45a918bc59613e6f10589e508ca7adbe2 /container-core | |
parent | 65cf2af452d0fcdae24e3a212cf9cb8019793ba2 (diff) |
Introduce metric for unhandled exceptions from request handlers
Diffstat (limited to 'container-core')
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java index a9ea737c96c..680a30b5ee1 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedHttpRequestHandler.java @@ -13,6 +13,7 @@ import com.yahoo.log.LogLevel; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.Map; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.logging.Logger; @@ -31,6 +32,7 @@ public abstract class ThreadedHttpRequestHandler extends ThreadedRequestHandler public static final String CONTENT_TYPE = "Content-Type"; private static final String RENDERING_ERRORS = "rendering_errors"; + private static final String UNHANDLED_EXCEPTION_METRIC = "jdisc.http.handler.unhandled_exception"; /** Logger for subclasses */ protected final Logger log; @@ -79,6 +81,7 @@ public abstract class ThreadedHttpRequestHandler extends ThreadedRequestHandler channel.setHttpResponse(httpResponse); // may or may not have already been done render(httpRequest, httpResponse, channel, jdiscRequest.creationTime(TimeUnit.MILLISECONDS)); } catch (Exception e) { + metric.add(UNHANDLED_EXCEPTION_METRIC, 1L, contextFor(request, Map.of("exception", e.getClass().getSimpleName()))); metric.add(RENDERING_ERRORS, 1, null); log.log(LogLevel.ERROR, "Uncaught exception handling request", e); if (channel != null) { |