aboutsummaryrefslogtreecommitdiffstats
path: root/container-disc
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2022-07-26 11:04:36 +0200
committerBjørn Christian Seime <bjorncs@yahooinc.com>2022-07-26 14:00:02 +0200
commit30709bd593a7cca5bd0b67f0bc389541352e0b3a (patch)
treed36a6a3d1be2ee8781ce2ff801c2dac3b584a86f /container-disc
parentd8e1354b4631be8a701db4e52721bfa780f9d384 (diff)
Add metric for total number of threads in JVM
Diffstat (limited to 'container-disc')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java4
-rw-r--r--container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java2
2 files changed, 5 insertions, 1 deletions
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
index 4b75bc233d6..3f7990288f5 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
@@ -9,6 +9,7 @@ import com.yahoo.nativec.NativeHeap;
import java.lang.management.BufferPoolMXBean;
import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadMXBean;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -39,6 +40,7 @@ public class MetricUpdater extends AbstractComponent {
private static final String DIRECT_COUNT = "mem.direct.count";
private static final String MEMORY_MAPPINGS_COUNT = "jdisc.memory_mappings";
private static final String OPEN_FILE_DESCRIPTORS = "jdisc.open_file_descriptors";
+ private static final String TOTAL_THREADS = "jdisc.threads.total";
private final Scheduler scheduler;
@@ -99,6 +101,7 @@ public class MetricUpdater extends AbstractComponent {
private final ContainerWatchdogMetrics containerWatchdogMetrics;
private final GarbageCollectionMetrics garbageCollectionMetrics;
private final JrtMetrics jrtMetrics;
+ private final ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
public UpdaterTask(Metric metric, ContainerWatchdogMetrics containerWatchdogMetrics) {
this.metric = metric;
@@ -148,6 +151,7 @@ public class MetricUpdater extends AbstractComponent {
metric.set(HEAP_TOTAL_MEMORY_BYTES, totalMemory, null);
metric.set(MEMORY_MAPPINGS_COUNT, count_mappings(), null);
metric.set(OPEN_FILE_DESCRIPTORS, count_open_files(), null);
+ metric.set(TOTAL_THREADS, threadMXBean.getThreadCount(), null);
directMemoryUsed();
nativeHeapUsed();
diff --git a/container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java b/container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java
index 0652f35a5d1..aa4ea37b692 100644
--- a/container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java
+++ b/container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java
@@ -27,7 +27,7 @@ public class MetricUpdaterTest {
ContainerWatchdogMetrics containerWatchdogMetrics = mock(ContainerWatchdogMetrics.class);
new MetricUpdater(new MockScheduler(), metric, containerWatchdogMetrics);
verify(containerWatchdogMetrics, times(1)).emitMetrics(any());
- verify(metric, times(13 + 2 * gcCount)).set(anyString(), any(), any());
+ verify(metric, times(14 + 2 * gcCount)).set(anyString(), any(), any());
}
private static class MockScheduler implements MetricUpdater.Scheduler {