diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2018-02-28 11:51:49 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2018-02-28 11:51:49 +0100 |
commit | f6b43ec0c2b3b584a2501fa733d5d7abf663591b (patch) | |
tree | 2e2a2e8959798d06ec8f181aad8970105b406e57 /node-admin | |
parent | 29b39068a3ffd22f906e72fdf2eedb9fe4d9d096 (diff) |
Send orchestratorState dimension to metrics proxy
Diffstat (limited to 'node-admin')
6 files changed, 36 insertions, 10 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java index f31dc8882af..26e3c46f365 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java @@ -32,6 +32,7 @@ public class ContainerNodeSpec { public final Optional<Long> wantedRebootGeneration; public final Optional<Long> currentRebootGeneration; + public final Optional<Boolean> allowedToBeDown; public final Optional<Owner> owner; public final Optional<Membership> membership; @@ -54,6 +55,7 @@ public class ContainerNodeSpec { final String nodeCanonicalFlavor, final Optional<String> wantedVespaVersion, final Optional<String> vespaVersion, + final Optional<Boolean> allowedToBeDown, final Optional<Owner> owner, final Optional<Membership> membership, final Optional<Long> wantedRestartGeneration, @@ -70,6 +72,9 @@ public class ContainerNodeSpec { Objects.requireNonNull(nodeState); Objects.requireNonNull(nodeType); Objects.requireNonNull(nodeFlavor); + Objects.requireNonNull(allowedToBeDown); + Objects.requireNonNull(owner); + Objects.requireNonNull(membership); Objects.requireNonNull(minCpuCores); Objects.requireNonNull(minMainMemoryAvailableGb); Objects.requireNonNull(minDiskAvailableGb); @@ -85,6 +90,7 @@ public class ContainerNodeSpec { this.nodeCanonicalFlavor = nodeCanonicalFlavor; this.wantedVespaVersion = wantedVespaVersion; this.vespaVersion = vespaVersion; + this.allowedToBeDown = allowedToBeDown; this.owner = owner; this.membership = membership; this.wantedRestartGeneration = wantedRestartGeneration; @@ -115,6 +121,7 @@ public class ContainerNodeSpec { Objects.equals(nodeCanonicalFlavor, that.nodeCanonicalFlavor) && Objects.equals(wantedVespaVersion, that.wantedVespaVersion) && Objects.equals(vespaVersion, that.vespaVersion) && + Objects.equals(allowedToBeDown, that.allowedToBeDown) && Objects.equals(owner, that.owner) && Objects.equals(membership, that.membership) && Objects.equals(wantedRestartGeneration, that.wantedRestartGeneration) && @@ -141,6 +148,7 @@ public class ContainerNodeSpec { nodeCanonicalFlavor, wantedVespaVersion, vespaVersion, + allowedToBeDown, owner, membership, wantedRestartGeneration, @@ -162,13 +170,14 @@ public class ContainerNodeSpec { + " wantedDockerImage=" + wantedDockerImage + " currentDockerImage=" + currentDockerImage + " nodeState=" + nodeState - + " nodeType = " + nodeType - + " nodeFlavor = " + nodeFlavor - + " nodeCanonicalFlavor = " + nodeCanonicalFlavor - + " wantedVespaVersion = " + wantedVespaVersion - + " vespaVersion = " + vespaVersion - + " owner = " + owner - + " membership = " + membership + + " nodeType=" + nodeType + + " nodeFlavor=" + nodeFlavor + + " nodeCanonicalFlavor=" + nodeCanonicalFlavor + + " wantedVespaVersion=" + wantedVespaVersion + + " vespaVersion=" + vespaVersion + + " allowedToBeDown=" + allowedToBeDown + + " owner=" + owner + + " membership=" + membership + " minCpuCores=" + minCpuCores + " wantedRestartGeneration=" + wantedRestartGeneration + " currentRestartGeneration=" + currentRestartGeneration @@ -286,6 +295,7 @@ public class ContainerNodeSpec { private String nodeCanonicalFlavor; private Optional<String> wantedVespaVersion = Optional.empty(); private Optional<String> vespaVersion = Optional.empty(); + private Optional<Boolean> allowedToBeDown = Optional.empty(); private Optional<Owner> owner = Optional.empty(); private Optional<Membership> membership = Optional.empty(); private Optional<Long> wantedRestartGeneration = Optional.empty(); @@ -370,6 +380,11 @@ public class ContainerNodeSpec { return this; } + public Builder allowedToBeDown(boolean allowedToBeDown) { + this.allowedToBeDown = Optional.of(allowedToBeDown); + return this; + } + public Builder owner(Owner owner) { this.owner = Optional.of(owner); return this; @@ -433,7 +448,7 @@ public class ContainerNodeSpec { public ContainerNodeSpec build() { return new ContainerNodeSpec(hostname, wantedDockerImage, currentDockerImage, nodeState, nodeType, nodeFlavor, nodeCanonicalFlavor, - wantedVespaVersion, vespaVersion, owner, membership, + wantedVespaVersion, vespaVersion, allowedToBeDown, owner, membership, wantedRestartGeneration, currentRestartGeneration, wantedRebootGeneration, currentRebootGeneration, minCpuCores, minMainMemoryAvailableGb, minDiskAvailableGb, diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java index 5b22866fa15..b1fe4e7e1ca 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java @@ -124,6 +124,7 @@ public class RealNodeRepository implements NodeRepository { node.nodeCanonicalFlavor, Optional.ofNullable(node.wantedVespaVersion), Optional.ofNullable(node.vespaVersion), + Optional.ofNullable(node.allowedToBeDown), Optional.ofNullable(owner), Optional.ofNullable(membership), Optional.ofNullable(node.wantedRestartGeneration), diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetNodesResponse.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetNodesResponse.java index c94b3836100..783ce89ad5c 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetNodesResponse.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetNodesResponse.java @@ -35,6 +35,7 @@ public class GetNodesResponse { public final String nodeCanonicalFlavor; public final String wantedVespaVersion; public final String vespaVersion; + public final Boolean allowedToBeDown; public final Owner owner; public final Membership membership; public final Long wantedRestartGeneration; @@ -58,6 +59,7 @@ public class GetNodesResponse { @JsonProperty("canonicalFlavor") String nodeCanonicalFlavor, @JsonProperty("wantedVespaVersion") String wantedVespaVersion, @JsonProperty("vespaVersion") String vespaVersion, + @JsonProperty("allowedToBeDown") Boolean allowedToBeDown, @JsonProperty("owner") Owner owner, @JsonProperty("membership") Membership membership, @JsonProperty("restartGeneration") Long wantedRestartGeneration, @@ -79,6 +81,7 @@ public class GetNodesResponse { this.nodeCanonicalFlavor = nodeCanonicalFlavor; this.wantedVespaVersion = wantedVespaVersion; this.vespaVersion = vespaVersion; + this.allowedToBeDown = allowedToBeDown; this.owner = owner; this.membership = membership; this.wantedRestartGeneration = wantedRestartGeneration; @@ -103,6 +106,7 @@ public class GetNodesResponse { + " nodeFlavor = " + nodeFlavor + " wantedVespaVersion = " + wantedVespaVersion + " vespaVersion = " + vespaVersion + + " allowedToBeDown = " + allowedToBeDown + " owner = " + owner + " membership = " + membership + " wantedRestartGeneration = " + wantedRestartGeneration diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index fcbe4e15213..54871e773bd 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -531,6 +531,8 @@ public class NodeAgentImpl implements NodeAgent { .add("role", "tenants") .add("state", nodeSpec.nodeState.toString()) .add("parentHostname", environment.getParentHostHostname()); + nodeSpec.allowedToBeDown.ifPresent(allowed -> + dimensionsBuilder.add("orchestratorState", allowed ? "ALLOWED_TO_BE_DOWN" : "NO_REMARKS")); Dimensions dimensions = dimensionsBuilder.build(); Docker.ContainerStats stats = containerStats.get(); 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 0b9564fad8c..1aa3cc2c082 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 @@ -567,6 +567,7 @@ public class NodeAgentImplTest { .owner(owner) .membership(membership) .minMainMemoryAvailableGb(2) + .allowedToBeDown(true) .build(); NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true); 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 023d3958c60..fab0f822d19 100644 --- a/node-admin/src/test/resources/expected.container.system.metrics.txt +++ b/node-admin/src/test/resources/expected.container.system.metrics.txt @@ -19,6 +19,7 @@ s: }, "dimensions": { "host": "host1.test.yahoo.com", + "orchestratorState":"ALLOWED_TO_BE_DOWN", "role": "tenants", "state": "active", "parentHostname": "parent.host.name.yahoo.com" @@ -42,8 +43,9 @@ s: "net.in.errors": 55 }, "dimensions": { - "host": "host1.test.yahoo.com", "role": "tenants", + "host": "host1.test.yahoo.com", + "orchestratorState":"ALLOWED_TO_BE_DOWN", "state": "active", "interface": "eth0", "parentHostname": "parent.host.name.yahoo.com" @@ -67,8 +69,9 @@ s: "net.in.errors": 0 }, "dimensions": { - "host": "host1.test.yahoo.com", "role": "tenants", + "host": "host1.test.yahoo.com", + "orchestratorState":"ALLOWED_TO_BE_DOWN", "state": "active", "interface": "eth1", "parentHostname": "parent.host.name.yahoo.com" |