summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2017-06-20 13:28:58 +0200
committervalerijf <valerijf@yahoo-inc.com>2017-06-20 13:28:58 +0200
commit1addc80f2a1ccd9ee727906b0cf3a5666435cb8b (patch)
tree740a83847eb0d7710e00b7b4eb819553e12688dd /node-admin
parent10004f331b8ed6540b56851a8cce647a1296dd48 (diff)
Test against a pseudo JSON file for readability
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java19
-rw-r--r--node-admin/src/test/resources/expected.container.system.metrics.txt76
2 files changed, 90 insertions, 5 deletions
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
index 91d9b382b7c..9114561346f 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
@@ -26,6 +26,8 @@ import org.mockito.InOrder;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.time.Duration;
import java.util.Collections;
import java.util.Map;
@@ -38,6 +40,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyVararg;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
@@ -529,21 +532,27 @@ public class NodeAgentImplTest {
nodeAgent.updateContainerNodeMetrics(5); // Update metrics once to init and lastCpuMetric
clock.advance(Duration.ofSeconds(1234));
- nodeAgent.updateContainerNodeMetrics(5);
- String[] expectedCommand = {"rpc_invoke", "-t", "1", "tcp/localhost:19091", "setExtraMetrics",
- "s:{\"routing\":{\"yamas\":{\"namespaces\":[\"Vespa\"]}},\"application\":\"vespa.node\",\"metrics\":{\"mem.limit\":4294967296,\"mem.used\":1073741824,\"disk.used\":42547019776,\"disk.util\":15.85,\"cpu.util\":0.0,\"mem.util\":25.0,\"disk.limit\":268435456000},\"dimensions\":{\"app\":\"testapp.testinstance\",\"role\":\"tenants\",\"instanceName\":\"testinstance\",\"vespaVersion\":\"1.2.3\",\"clusterid\":\"clustId\",\"parentHostname\":\"parent.host.name.yahoo.com\",\"flavor\":\"docker\",\"clustertype\":\"clustType\",\"tenantName\":\"tester\",\"zone\":\"dev.us-east-1\",\"host\":\"host1.test.yahoo.com\",\"state\":\"active\",\"applicationId\":\"tester.testapp.testinstance\",\"applicationName\":\"testapp\"},\"timestamp\":0}{\"routing\":{\"yamas\":{\"namespaces\":[\"Vespa\"]}},\"application\":\"vespa.node\",\"metrics\":{\"net.out.bytes\":20303455,\"net.in.dropped\":4,\"net.out.dropped\":13,\"net.in.bytes\":19499270,\"net.out.errors\":3,\"net.in.errors\":55},\"dimensions\":{\"app\":\"testapp.testinstance\",\"role\":\"tenants\",\"instanceName\":\"testinstance\",\"vespaVersion\":\"1.2.3\",\"clusterid\":\"clustId\",\"interface\":\"eth0\",\"parentHostname\":\"parent.host.name.yahoo.com\",\"flavor\":\"docker\",\"clustertype\":\"clustType\",\"tenantName\":\"tester\",\"zone\":\"dev.us-east-1\",\"host\":\"host1.test.yahoo.com\",\"state\":\"active\",\"applicationId\":\"tester.testapp.testinstance\",\"applicationName\":\"testapp\"},\"timestamp\":0}{\"routing\":{\"yamas\":{\"namespaces\":[\"Vespa\"]}},\"application\":\"vespa.node\",\"metrics\":{\"net.out.bytes\":54246745,\"net.in.dropped\":0,\"net.out.dropped\":0,\"net.in.bytes\":3245766,\"net.out.errors\":0,\"net.in.errors\":0},\"dimensions\":{\"app\":\"testapp.testinstance\",\"role\":\"tenants\",\"instanceName\":\"testinstance\",\"vespaVersion\":\"1.2.3\",\"clusterid\":\"clustId\",\"interface\":\"eth1\",\"parentHostname\":\"parent.host.name.yahoo.com\",\"flavor\":\"docker\",\"clustertype\":\"clustType\",\"tenantName\":\"tester\",\"zone\":\"dev.us-east-1\",\"host\":\"host1.test.yahoo.com\",\"state\":\"active\",\"applicationId\":\"tester.testapp.testinstance\",\"applicationName\":\"testapp\"},\"timestamp\":0}"};
+ Path pathToExpectedMetrics = Paths.get(classLoader.getResource("expected.container.system.metrics.txt").getPath());
+ String expectedMetrics = new String(Files.readAllBytes(pathToExpectedMetrics))
+ .replaceAll("\\s", "")
+ .replaceAll("\\n", "");
+
+ String[] expectedCommand = {"rpc_invoke", "-t", "1", "tcp/localhost:19091", "setExtraMetrics", expectedMetrics};
doAnswer(invocation -> {
ContainerName calledContainerName = (ContainerName) invocation.getArguments()[0];
long calledTimeout = (long) invocation.getArguments()[1];
- String[] calledCommand = (String[]) invocation.getArguments()[2];
+ String[] calledCommand = new String[invocation.getArguments().length - 2];
+ System.arraycopy(invocation.getArguments(), 2, calledCommand, 0, calledCommand.length);
calledCommand[calledCommand.length - 1] = calledCommand[calledCommand.length - 1].replaceAll("\"timestamp\":\\d+", "\"timestamp\":0");
assertEquals(containerName, calledContainerName);
assertEquals(5L, calledTimeout);
assertArrayEquals(expectedCommand, calledCommand);
return null;
- }).when(dockerOperations).executeCommandInContainerAsRoot(any(), any(), any());
+ }).when(dockerOperations).executeCommandInContainerAsRoot(any(), any(), anyVararg());
+
+ nodeAgent.updateContainerNodeMetrics(5);
}
@Test
diff --git a/node-admin/src/test/resources/expected.container.system.metrics.txt b/node-admin/src/test/resources/expected.container.system.metrics.txt
new file mode 100644
index 00000000000..cfe01ae34f6
--- /dev/null
+++ b/node-admin/src/test/resources/expected.container.system.metrics.txt
@@ -0,0 +1,76 @@
+s:
+{
+ "routing": {
+ "yamas": {
+ "namespaces":
+ ["Vespa"]
+ }
+ },
+ "application": "vespa.node",
+ "metrics": {
+ "mem.limit": 4294967296,
+ "mem.used": 1073741824,
+ "disk.used": 42547019776,
+ "disk.util": 15.85,
+ "cpu.util": 6.75,
+ "mem.util": 25.0,
+ "disk.limit": 268435456000
+ },
+ "dimensions": {
+ "host": "host1.test.yahoo.com",
+ "role": "tenants",
+ "state": "active",
+ "parentHostname": "parent.host.name.yahoo.com"
+ },
+ "timestamp": 0
+}
+{
+ "routing": {
+ "yamas": {
+ "namespaces":
+ ["Vespa"]
+ }
+ },
+ "application": "vespa.node",
+ "metrics": {
+ "net.out.bytes": 20303455,
+ "net.in.dropped": 4,
+ "net.out.dropped": 13,
+ "net.in.bytes": 19499270,
+ "net.out.errors": 3,
+ "net.in.errors": 55
+ },
+ "dimensions": {
+ "host": "host1.test.yahoo.com",
+ "role": "tenants",
+ "state": "active",
+ "interface": "eth0",
+ "parentHostname": "parent.host.name.yahoo.com"
+ },
+ "timestamp": 0
+}
+{
+ "routing": {
+ "yamas": {
+ "namespaces":
+ ["Vespa"]
+ }
+ },
+ "application": "vespa.node",
+ "metrics": {
+ "net.out.bytes": 54246745,
+ "net.in.dropped": 0,
+ "net.out.dropped": 0,
+ "net.in.bytes": 3245766,
+ "net.out.errors": 0,
+ "net.in.errors": 0
+ },
+ "dimensions": {
+ "host": "host1.test.yahoo.com",
+ "role": "tenants",
+ "state": "active",
+ "interface": "eth1",
+ "parentHostname": "parent.host.name.yahoo.com"
+ },
+ "timestamp": 0
+} \ No newline at end of file