aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerStatsCollectorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerStatsCollectorTest.java')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerStatsCollectorTest.java147
1 files changed, 0 insertions, 147 deletions
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerStatsCollectorTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerStatsCollectorTest.java
deleted file mode 100644
index 8cd3d6529c5..00000000000
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerStatsCollectorTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hosted.node.admin.container;
-
-import com.yahoo.vespa.hosted.node.admin.cgroup.Cgroup;
-import com.yahoo.vespa.hosted.node.admin.cgroup.MemoryController;
-import com.yahoo.vespa.hosted.node.admin.cgroup.Size;
-import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec;
-import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentContext;
-import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentContextImpl;
-import com.yahoo.vespa.hosted.node.admin.task.util.file.UnixPath;
-import com.yahoo.vespa.hosted.node.admin.task.util.process.TestTerminal;
-import com.yahoo.vespa.test.file.TestFileSystem;
-import org.junit.jupiter.api.Test;
-import org.mockito.Answers;
-
-import java.io.IOException;
-import java.nio.file.FileSystem;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static com.yahoo.vespa.hosted.node.admin.cgroup.CpuController.StatField.SYSTEM_USAGE_USEC;
-import static com.yahoo.vespa.hosted.node.admin.cgroup.CpuController.StatField.THROTTLED_PERIODS;
-import static com.yahoo.vespa.hosted.node.admin.cgroup.CpuController.StatField.THROTTLED_TIME_USEC;
-import static com.yahoo.vespa.hosted.node.admin.cgroup.CpuController.StatField.TOTAL_PERIODS;
-import static com.yahoo.vespa.hosted.node.admin.cgroup.CpuController.StatField.TOTAL_USAGE_USEC;
-import static com.yahoo.vespa.hosted.node.admin.cgroup.CpuController.StatField.USER_USAGE_USEC;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-/**
- * @author mpolden
- */
-public class ContainerStatsCollectorTest {
-
- private final TestTerminal testTerminal = new TestTerminal();
- private final ContainerEngineMock containerEngine = new ContainerEngineMock(testTerminal);
- private final FileSystem fileSystem = TestFileSystem.create();
- private final Cgroup cgroup = mock(Cgroup.class, Answers.RETURNS_DEEP_STUBS);
- private final NodeAgentContext context = NodeAgentContextImpl.builder(NodeSpec.Builder.testSpec("c1").build())
- .fileSystem(TestFileSystem.create())
- .build();
- @Test
- void collect() throws Exception {
- ContainerStatsCollector collector = new ContainerStatsCollector(containerEngine, cgroup, fileSystem, 24);
- ContainerId containerId = new ContainerId("id1");
- int containerPid = 42;
- assertTrue(collector.collect(context, containerId, containerPid, "eth0").isEmpty(), "No stats found");
-
- mockMemoryStats(containerId);
- mockCpuStats(containerId);
- mockNetworkStats(containerPid);
-
- Optional<ContainerStats> stats = collector.collect(context, containerId, containerPid, "eth0");
- assertTrue(stats.isPresent());
- assertEquals(new ContainerStats.CpuStats(24, 6049374780000L, 691675615472L,
- 262190000000L, 3L, 1L, 2L),
- stats.get().cpuStats());
- assertEquals(new ContainerStats.MemoryStats(470790144L, 1228017664L, 2147483648L),
- stats.get().memoryStats());
- assertEquals(Map.of("eth0", new ContainerStats.NetworkStats(22280813L, 4L, 3L,
- 19859383L, 6L, 5L)),
- stats.get().networks());
- assertEquals(List.of(), stats.get().gpuStats());
-
- mockGpuStats();
- stats = collector.collect(context, containerId, containerPid, "eth0");
- assertTrue(stats.isPresent());
- assertEquals(List.of(new ContainerStats.GpuStats(0, 35, 16106127360L, 6144655360L),
- new ContainerStats.GpuStats(1, 67, 32212254720L, 19314769920L)),
- stats.get().gpuStats());
- }
-
- private void mockGpuStats() throws IOException {
- Path devPath = fileSystem.getPath("/dev");
- Files.createDirectories(devPath);
- Files.createFile(devPath.resolve("nvidia0"));
- testTerminal.expectCommand("nvidia-smi --query-gpu=index,utilization.gpu,memory.total,memory.free --format=csv,noheader,nounits 2>&1", 0,
- """
- 0, 35, 15360, 9500
- 1, 67, 30720, 12300
- """);
- }
-
- private void mockNetworkStats(int pid) {
- UnixPath dev = new UnixPath(fileSystem.getPath("/proc/" + pid + "/net/dev"));
- dev.createParents().writeUtf8File("Inter-| Receive | Transmit\n" +
- " face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed\n" +
- " lo: 36289258 149700 0 0 0 0 0 0 36289258 149700 0 0 0 0 0 0\n" +
- " eth0: 22280813 118083 3 4 0 0 0 0 19859383 115415 5 6 0 0 0 0\n");
- }
-
- private void mockMemoryStats(ContainerId containerId) {
- when(cgroup.resolveContainer(eq(containerId)).memory().readCurrent()).thenReturn(Size.from(1228017664L));
- when(cgroup.resolveContainer(eq(containerId)).memory().readMax()).thenReturn(Size.from(2147483648L));
- when(cgroup.resolveContainer(eq(containerId)).memory().readStat()).thenReturn(
- new MemoryController.Stats(Size.from(470790144L), Size.from(0), Size.from(0), Size.from(0), Size.from(0)));
- }
-
- private void mockCpuStats(ContainerId containerId) throws IOException {
- UnixPath proc = new UnixPath(fileSystem.getPath("/proc"));
- proc.createDirectories();
-
- when(cgroup.resolveContainer(eq(containerId)).cpu().readStats()).thenReturn(Map.of(
- TOTAL_USAGE_USEC, 691675615472L, SYSTEM_USAGE_USEC, 262190000000L, USER_USAGE_USEC, 40900L,
- TOTAL_PERIODS, 1L, THROTTLED_PERIODS, 2L, THROTTLED_TIME_USEC, 3L));
-
- proc.resolve("stat").writeUtf8File("cpu 7991366 978222 2346238 565556517 1935450 25514479 615206 0 0 0\n" +
- "cpu0 387906 61529 99088 23516506 42258 1063359 29882 0 0 0\n" +
- "cpu1 271253 49383 86149 23655234 41703 1061416 31885 0 0 0\n" +
- "cpu2 349420 50987 93560 23571695 59437 1051977 24461 0 0 0\n" +
- "cpu3 328107 50628 93406 23605135 44378 1048549 30199 0 0 0\n" +
- "cpu4 267474 50404 99253 23606041 113094 1038572 26494 0 0 0\n" +
- "cpu5 309584 50677 94284 23550372 132616 1033661 29436 0 0 0\n" +
- "cpu6 477926 56888 121251 23367023 83121 1074930 28818 0 0 0\n" +
- "cpu7 335335 29350 106130 23551107 95606 1066394 26156 0 0 0\n" +
- "cpu8 323678 28629 99171 23586501 82183 1064708 25403 0 0 0\n" +
- "cpu9 329805 27516 98538 23579458 89235 1061561 25140 0 0 0\n" +
- "cpu10 291536 26455 93934 23642345 81282 1049736 25228 0 0 0\n" +
- "cpu11 271103 25302 90630 23663641 85711 1048781 24291 0 0 0\n" +
- "cpu12 323634 63392 100406 23465340 132684 1089157 28319 0 0 0\n" +
- "cpu13 348085 49568 100772 23490388 114190 1079474 20948 0 0 0\n" +
- "cpu14 310712 51208 90461 23547980 101601 1071940 26712 0 0 0\n" +
- "cpu15 360405 52754 94620 23524878 79851 1062050 26836 0 0 0\n" +
- "cpu16 367893 52141 98074 23541314 57500 1058968 25242 0 0 0\n" +
- "cpu17 412756 51486 101592 23515056 47653 1044874 27467 0 0 0\n" +
- "cpu18 287307 25478 106011 23599505 79848 1089812 23160 0 0 0\n" +
- "cpu19 275001 24421 98338 23628694 79675 1084074 22083 0 0 0\n" +
- "cpu20 288038 24805 94432 23629908 74735 1078501 21915 0 0 0\n" +
- "cpu21 295373 25017 91344 23628585 75282 1071019 22026 0 0 0\n" +
- "cpu22 326739 25588 90385 23608217 69186 1068494 21108 0 0 0\n" +
- "cpu23 452284 24602 104397 23481583 72612 1052462 21985 0 0 0\n" +
- "intr 6645352968 64 0 0 0 1481 0 0 0 1 0 0 0 0 0 0 0 39 0 0 0 0 0 0 37 0 0 0 0 0 0 0 0 4334106 1 6949071 5814662 5415344 6939471 6961483 6358810 5271953 6718644 0 126114 126114 126114 126114 126114 126114 126114 126114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" +
- "ctxt 2495530303\n" +
- "btime 1611928223\n" +
- "processes 4839481\n" +
- "procs_running 4\n" +
- "procs_blocked 0\n" +
- "softirq 2202631388 4 20504999 46734 54405637 4330276 0 6951 1664780312 10130 458546345\n");
- }
-
-}