summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-02-28 11:51:49 +0100
committerValerij Fredriksen <valerijf@oath.com>2018-02-28 11:51:49 +0100
commitf6b43ec0c2b3b584a2501fa733d5d7abf663591b (patch)
tree2e2a2e8959798d06ec8f181aad8970105b406e57 /node-admin
parent29b39068a3ffd22f906e72fdf2eedb9fe4d9d096 (diff)
Send orchestratorState dimension to metrics proxy
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java31
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java1
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetNodesResponse.java4
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java1
-rw-r--r--node-admin/src/test/resources/expected.container.system.metrics.txt7
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"