diff --git a/metrics-jvm/src/main/java/com/codahale/metrics/jvm/ThreadStatesGaugeSet.java b/metrics-jvm/src/main/java/com/codahale/metrics/jvm/ThreadStatesGaugeSet.java index ddbc95fedc..9b796a7bd3 100644 --- a/metrics-jvm/src/main/java/com/codahale/metrics/jvm/ThreadStatesGaugeSet.java +++ b/metrics-jvm/src/main/java/com/codahale/metrics/jvm/ThreadStatesGaugeSet.java @@ -55,6 +55,8 @@ public Map getMetrics() { gauges.put("count", (Gauge) threads::getThreadCount); gauges.put("daemon.count", (Gauge) threads::getDaemonThreadCount); + gauges.put("peak.count", (Gauge) threads::getPeakThreadCount); + gauges.put("total_started.count", (Gauge) threads::getTotalStartedThreadCount); gauges.put("deadlock.count", (Gauge) () -> deadlockDetector.getDeadlockedThreads().size()); gauges.put("deadlocks", (Gauge>) deadlockDetector::getDeadlockedThreads); diff --git a/metrics-jvm/src/test/java/com/codahale/metrics/jvm/ThreadStatesGaugeSetTest.java b/metrics-jvm/src/test/java/com/codahale/metrics/jvm/ThreadStatesGaugeSetTest.java index acdc0ef825..df235a70b4 100644 --- a/metrics-jvm/src/test/java/com/codahale/metrics/jvm/ThreadStatesGaugeSetTest.java +++ b/metrics-jvm/src/test/java/com/codahale/metrics/jvm/ThreadStatesGaugeSetTest.java @@ -46,7 +46,9 @@ public void setUp() { }); when(threads.getThreadCount()).thenReturn(12); - when(threads.getDaemonThreadCount()).thenReturn(13); + when(threads.getDaemonThreadCount()).thenReturn(10); + when(threads.getPeakThreadCount()).thenReturn(30); + when(threads.getTotalStartedThreadCount()).thenReturn(42L); when(detector.getDeadlockedThreads()).thenReturn(deadlocks); } @@ -63,7 +65,9 @@ public void hasASetOfGauges() { "waiting.count", "daemon.count", "runnable.count", - "deadlock.count"); + "deadlock.count", + "total_started.count", + "peak.count"); } @Test @@ -96,7 +100,7 @@ public void hasAGaugeForTheNumberOfThreads() { @Test public void hasAGaugeForTheNumberOfDaemonThreads() { assertThat(((Gauge) gauges.getMetrics().get("daemon.count")).getValue()) - .isEqualTo(13); + .isEqualTo(10); } @Test @@ -111,6 +115,18 @@ public void hasAGaugeForAnyDeadlockCount() { .isEqualTo(1); } + @Test + public void hasAGaugeForPeakThreadCount() { + assertThat(((Gauge) gauges.getMetrics().get("peak.count")).getValue()) + .isEqualTo(30); + } + + @Test + public void hasAGaugeForTotalStartedThreadsCount() { + assertThat(((Gauge) gauges.getMetrics().get("total_started.count")).getValue()) + .isEqualTo(42L); + } + @Test public void autoDiscoversTheMXBeans() { final ThreadStatesGaugeSet set = new ThreadStatesGaugeSet();