aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2020-04-16 10:38:41 +0200
committerOla Aunrønning <olaa@verizonmedia.com>2020-04-16 10:38:41 +0200
commit8bebe88526e449bbca0514d8bdfc87390cb26db4 (patch)
treed29880e85bc6bf2a87fa693bcfe893a1006b4bfc /node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java
parent02b3a581f8ea643090182b232201ae04ae253b71 (diff)
Add metrics for enqueued and processed coredumps
Diffstat (limited to 'node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java28
1 files changed, 23 insertions, 5 deletions
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java
index 3d9e3c08276..62bf9e3f9c2 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoredumpHandlerTest.java
@@ -1,6 +1,8 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.maintenance.coredump;
+import com.yahoo.vespa.hosted.dockerapi.metrics.DimensionMetrics;
+import com.yahoo.vespa.hosted.dockerapi.metrics.Metrics;
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;
@@ -46,16 +48,17 @@ public class CoredumpHandlerTest {
private final Path donePath = fileSystem.getPath("/home/docker/dumps");
private final NodeAgentContext context = new NodeAgentContextImpl.Builder("container-123.domain.tld")
.fileSystem(fileSystem).build();
- private final Path crashPathInContainer = Paths.get("/var/crash");
+ private final Path crashPathInContainer = fileSystem.getPath("/var/crash");
private final Path doneCoredumpsPath = fileSystem.getPath("/home/docker/dumps");
private final TestTerminal terminal = new TestTerminal();
private final CoreCollector coreCollector = mock(CoreCollector.class);
private final CoredumpReporter coredumpReporter = mock(CoredumpReporter.class);
+ private final Metrics metrics = new Metrics();
@SuppressWarnings("unchecked")
private final Supplier<String> coredumpIdSupplier = mock(Supplier.class);
private final CoredumpHandler coredumpHandler = new CoredumpHandler(terminal, coreCollector, coredumpReporter,
- crashPathInContainer, doneCoredumpsPath, "users", coredumpIdSupplier);
+ crashPathInContainer, doneCoredumpsPath, "users", metrics, coredumpIdSupplier);
@Test
@@ -206,13 +209,28 @@ public class CoredumpHandlerTest {
verify(coreCollector, never()).collect(any(), any());
verify(coredumpReporter, times(1)).reportCoredump(eq("id-123"), eq("metadata"));
assertFalse(Files.exists(coredumpDirectory));
- assertFolderContents(doneCoredumpsPath, "id-123");
- assertFolderContents(doneCoredumpsPath.resolve("id-123"), "metadata.json", "dump_bash.core.431.lz4");
+ assertFolderContents(doneCoredumpsPath.resolve("container-123"), "id-123");
+ assertFolderContents(doneCoredumpsPath.resolve("container-123").resolve("id-123"), "metadata.json", "dump_bash.core.431.lz4");
+ }
+
+ @Test
+ public void report_enqueued_and_processed_metrics() throws IOException {
+ Files.createFile(crashPathInContainer.resolve("dump-1"));
+ Files.createFile(crashPathInContainer.resolve("dump-2"));
+ Files.createFile(doneCoredumpsPath.resolve("container-123").resolve("dump-3"));
+
+ coredumpHandler.updateMetrics(context, crashPathInContainer);
+ List<DimensionMetrics> updatedMetrics = metrics.getMetricsByType(Metrics.DimensionType.PRETAGGED);
+ assertEquals(1, updatedMetrics.size());
+ Map<String, Number> values = updatedMetrics.get(0).getMetrics();
+ assertEquals(2, values.get("coredumps.enqueued").intValue());
+ assertEquals(1, values.get("coredumps.processed").intValue());
}
@Before
public void setup() throws IOException {
- Files.createDirectories(donePath);
+ Files.createDirectories(donePath.resolve("container-123"));
+ Files.createDirectories(crashPathInContainer);
}
@After