summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerij92@gmail.com>2019-06-16 13:15:48 +0200
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-06-16 16:01:56 +0200
commit49b52ad921f270a8595d2d5e1b23095d0b971ce7 (patch)
treeef26f1e87f0ed47144dda6b52f8de232272b746c
parent50c85fe3f77443b61cfef5a8433e5fd832b5508a (diff)
Sort dimension metric keys
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/DimensionMetrics.java26
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/Dimensions.java8
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java7
-rw-r--r--node-admin/src/test/resources/expected.container.system.metrics.txt105
4 files changed, 76 insertions, 70 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/DimensionMetrics.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/DimensionMetrics.java
index 432474d7270..ef59c4b17d6 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/DimensionMetrics.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/DimensionMetrics.java
@@ -8,6 +8,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.TreeMap;
/**
* @author freva
@@ -26,22 +27,29 @@ public class DimensionMetrics {
this.metrics = Objects.requireNonNull(metrics);
}
- Map<String, Object> getMetrics() {
- Map<String, Object> report = new HashMap<>();
+ public String toSecretAgentReport() throws JsonProcessingException {
+ Map<String, Object> report = new TreeMap<>();
report.put("application", application);
- report.put("dimensions", dimensions.dimensionsMap);
- report.put("metrics", metrics);
+ report.put("dimensions", new TreeMap<>(dimensions.asMap()));
+ report.put("metrics", new TreeMap<>(metrics));
report.put("routing", routing);
- return report;
- }
-
- public String toSecretAgentReport() throws JsonProcessingException {
- Map<String, Object> report = getMetrics();
report.put("timestamp", System.currentTimeMillis() / 1000);
return objectMapper.writeValueAsString(report);
}
+ public String getApplication() {
+ return application;
+ }
+
+ public Dimensions getDimensions() {
+ return dimensions;
+ }
+
+ public Map<String, Number> getMetrics() {
+ return metrics;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/Dimensions.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/Dimensions.java
index e5e3306a31a..ae4829d4b07 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/Dimensions.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/Dimensions.java
@@ -13,12 +13,16 @@ public class Dimensions {
public static final Dimensions NONE = new Dimensions(Map.of());
- final Map<String, String> dimensionsMap;
+ private final Map<String, String> dimensionsMap;
- private Dimensions(Map<String, String> dimensionsMap) {
+ public Dimensions(Map<String, String> dimensionsMap) {
this.dimensionsMap = Map.copyOf(dimensionsMap);
}
+ public Map<String, String> asMap() {
+ return dimensionsMap;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
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 c43750684f6..deab02777b7 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
@@ -34,10 +34,8 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.util.Collections;
-import java.util.Map;
+import java.util.List;
import java.util.Optional;
-import java.util.Set;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -713,8 +711,7 @@ public class NodeAgentImplTest {
nodeAgent.updateContainerNodeMetrics();
- Set<Map<String, Object>> actualMetrics = metricReceiver.getDefaultMetricsRaw();
- assertEquals(Collections.emptySet(), actualMetrics);
+ assertEquals(List.of(), metricReceiver.getDefaultMetrics());
}
@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
index c44d72b395e..ec750798c98 100644
--- a/node-admin/src/test/resources/expected.container.system.metrics.txt
+++ b/node-admin/src/test/resources/expected.container.system.metrics.txt
@@ -1,83 +1,80 @@
s:
{
- "routing": {
- "yamas": {
- "namespaces":
- ["Vespa"]
- }
- },
"application": "vespa.node",
+ "dimensions": {
+ "host": "host1.test.yahoo.com",
+ "orchestratorState":"ALLOWED_TO_BE_DOWN",
+ "parentHostname": "parent.host.name.yahoo.com",
+ "role": "tenants",
+ "state": "active"
+ },
"metrics": {
- "mem.limit": 4294967296,
- "mem.used": 1073741824,
- "mem_total.util": 40.808,
- "mem_total.used": 1752707072,
- "disk.used": 39625000000,
"cpu.sys.util": 3.402,
- "disk.util": 15.85,
- "cpu.vcpus": 2.0,
"cpu.util": 5.4,
+ "cpu.vcpus": 2.0,
+ "disk.limit": 250000000000,
+ "disk.used": 39625000000,
+ "disk.util": 15.85,
+ "mem.limit": 4294967296,
+ "mem.used": 1073741824,
"mem.util": 25.0,
- "disk.limit": 250000000000
+ "mem_total.used": 1752707072,
+ "mem_total.util": 40.808
},
- "dimensions": {
- "host": "host1.test.yahoo.com",
- "orchestratorState":"ALLOWED_TO_BE_DOWN",
- "role": "tenants",
- "state": "active",
- "parentHostname": "parent.host.name.yahoo.com"
+ "routing": {
+ "yamas": {
+ "namespaces": ["Vespa"]
+ }
},
"timestamp": 0
}
{
- "routing": {
- "yamas": {
- "namespaces":
- ["Vespa"]
- }
- },
"application": "vespa.node",
+ "dimensions": {
+ "host": "host1.test.yahoo.com",
+ "interface": "eth0",
+ "orchestratorState":"ALLOWED_TO_BE_DOWN",
+ "parentHostname": "parent.host.name.yahoo.com",
+ "role": "tenants",
+ "state": "active"
+ },
"metrics": {
- "net.out.bytes": 20303455,
+ "net.in.bytes": 19499270,
"net.in.dropped": 4,
+ "net.in.errors": 55,
+ "net.out.bytes": 20303455,
"net.out.dropped": 13,
- "net.in.bytes": 19499270,
- "net.out.errors": 3,
- "net.in.errors": 55
+ "net.out.errors": 3
},
- "dimensions": {
- "role": "tenants",
- "host": "host1.test.yahoo.com",
- "orchestratorState":"ALLOWED_TO_BE_DOWN",
- "state": "active",
- "interface": "eth0",
- "parentHostname": "parent.host.name.yahoo.com"
+ "routing": {
+ "yamas": {
+ "namespaces": ["Vespa"]
+ }
},
"timestamp": 0
}
{
- "routing": {
- "yamas": {
- "namespaces":
- ["Vespa"]
- }
- },
"application": "vespa.node",
+ "dimensions": {
+ "host": "host1.test.yahoo.com",
+ "interface": "eth1",
+ "orchestratorState":"ALLOWED_TO_BE_DOWN",
+ "parentHostname": "parent.host.name.yahoo.com",
+ "role": "tenants",
+ "state": "active"
+ },
"metrics": {
- "net.out.bytes": 54246745,
+ "net.in.bytes": 3245766,
"net.in.dropped": 0,
+ "net.in.errors": 0,
+ "net.out.bytes": 54246745,
"net.out.dropped": 0,
- "net.in.bytes": 3245766,
- "net.out.errors": 0,
- "net.in.errors": 0
+ "net.out.errors": 0
},
- "dimensions": {
- "role": "tenants",
- "host": "host1.test.yahoo.com",
- "orchestratorState":"ALLOWED_TO_BE_DOWN",
- "state": "active",
- "interface": "eth1",
- "parentHostname": "parent.host.name.yahoo.com"
+ "routing": {
+ "yamas": {
+ "namespaces": ["Vespa"]
+ }
},
"timestamp": 0
} \ No newline at end of file