From cee78386ee9a2938c4f123b4abfe45baac15e67e Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 2 May 2013 08:32:22 +0100 Subject: [PATCH] [bs-87] Add /dump endpoint * Just dumps ThreadInfo, simple but effective * Implementation is part of TraceEndpoint [Fixes #49056831] --- .../service/properties/EndpointsProperties.java | 7 +++++++ .../bootstrap/service/trace/TraceEndpoint.java | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/spring-bootstrap-service/src/main/java/org/springframework/bootstrap/service/properties/EndpointsProperties.java b/spring-bootstrap-service/src/main/java/org/springframework/bootstrap/service/properties/EndpointsProperties.java index ff11ad0a630..608cc8f3a25 100644 --- a/spring-bootstrap-service/src/main/java/org/springframework/bootstrap/service/properties/EndpointsProperties.java +++ b/spring-bootstrap-service/src/main/java/org/springframework/bootstrap/service/properties/EndpointsProperties.java @@ -45,6 +45,9 @@ public class EndpointsProperties { @Valid private Endpoint trace = new Endpoint("/trace"); + @Valid + private Endpoint dump = new Endpoint("/dump"); + public Endpoint getVarz() { return this.varz; } @@ -65,6 +68,10 @@ public class EndpointsProperties { return this.trace; } + public Endpoint getDump() { + return this.dump; + } + public static class Endpoint { @NotNull diff --git a/spring-bootstrap-service/src/main/java/org/springframework/bootstrap/service/trace/TraceEndpoint.java b/spring-bootstrap-service/src/main/java/org/springframework/bootstrap/service/trace/TraceEndpoint.java index 79059b3f238..2e54d2594ec 100644 --- a/spring-bootstrap-service/src/main/java/org/springframework/bootstrap/service/trace/TraceEndpoint.java +++ b/spring-bootstrap-service/src/main/java/org/springframework/bootstrap/service/trace/TraceEndpoint.java @@ -16,6 +16,9 @@ package org.springframework.bootstrap.service.trace; +import java.lang.management.ManagementFactory; +import java.lang.management.ThreadInfo; +import java.util.Arrays; import java.util.List; import org.springframework.stereotype.Controller; @@ -44,4 +47,11 @@ public class TraceEndpoint { return this.tracer.traces(); } + @RequestMapping("${endpoints.dump.path:/dump}") + @ResponseBody + public List dump() { + return Arrays.asList(ManagementFactory.getThreadMXBean().dumpAllThreads(true, + true)); + } + }