diff --git a/mantis-server/mantis-server-agent/src/main/java/io/mantisrx/server/agent/metrics/cgroups/CgroupImpl.java b/mantis-server/mantis-server-agent/src/main/java/io/mantisrx/server/agent/metrics/cgroups/CgroupImpl.java index 37f2f759e..8ee783640 100644 --- a/mantis-server/mantis-server-agent/src/main/java/io/mantisrx/server/agent/metrics/cgroups/CgroupImpl.java +++ b/mantis-server/mantis-server-agent/src/main/java/io/mantisrx/server/agent/metrics/cgroups/CgroupImpl.java @@ -24,9 +24,11 @@ import java.nio.file.Paths; import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; import lombok.AccessLevel; import lombok.Getter; @@ -120,12 +122,16 @@ private static long convertStringToLong(String strval) { } } + private static final Set knownSubsystems = + new HashSet<>(Arrays.asList("cpu", "cpuacct", "cpuset", "memory")); + private List getSubsystems() { return Arrays.asList(Objects.requireNonNull(Paths.get(path).toFile().listFiles())) .stream() .filter(s -> s.isDirectory()) .map(s -> s.getName()) + .filter(s -> knownSubsystems.contains(s)) .collect(Collectors.toList()); } } diff --git a/mantis-server/mantis-server-agent/src/test/java/io/mantisrx/server/agent/metrics/cgroups/TestCgroup.java b/mantis-server/mantis-server-agent/src/test/java/io/mantisrx/server/agent/metrics/cgroups/TestCgroup.java index b0a78e97d..d947baef0 100644 --- a/mantis-server/mantis-server-agent/src/test/java/io/mantisrx/server/agent/metrics/cgroups/TestCgroup.java +++ b/mantis-server/mantis-server-agent/src/test/java/io/mantisrx/server/agent/metrics/cgroups/TestCgroup.java @@ -17,6 +17,7 @@ package io.mantisrx.server.agent.metrics.cgroups; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import io.mantisrx.shaded.com.google.common.collect.ImmutableMap; import io.mantisrx.shaded.com.google.common.io.Resources; @@ -33,6 +34,7 @@ public void testReadingStatFiles() throws IOException { assertEquals( ImmutableMap.of("user", 49692738L, "system", 4700825L), cgroup.getStats("cpuacct", "cpuacct.stat")); + assertTrue(cgroup.isV1()); } @Test diff --git a/mantis-server/mantis-server-agent/src/test/java/io/mantisrx/server/agent/metrics/cgroups/TestCpuAcctsSubsystemProcess.java b/mantis-server/mantis-server-agent/src/test/java/io/mantisrx/server/agent/metrics/cgroups/TestCpuAcctsSubsystemProcess.java index 7071da290..d9c916205 100644 --- a/mantis-server/mantis-server-agent/src/test/java/io/mantisrx/server/agent/metrics/cgroups/TestCpuAcctsSubsystemProcess.java +++ b/mantis-server/mantis-server-agent/src/test/java/io/mantisrx/server/agent/metrics/cgroups/TestCpuAcctsSubsystemProcess.java @@ -17,6 +17,7 @@ package io.mantisrx.server.agent.metrics.cgroups; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -55,6 +56,7 @@ public void testWhenCgroupsReturnsCorrectData() throws Exception { public void testCgroupsV2() throws IOException { final Cgroup cgroupv2 = new CgroupImpl(Resources.getResource("example2").getPath()); + assertFalse(cgroupv2.isV1()); final CpuAcctsSubsystemProcess process = new CpuAcctsSubsystemProcess(cgroupv2); final Usage.UsageBuilder usageBuilder = Usage.builder();