summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <freva@users.noreply.github.com>2020-07-24 15:25:39 +0200
committerGitHub <noreply@github.com>2020-07-24 15:25:39 +0200
commit6104b1ef478b41bb712114ea4e41db0fdba2ba2f (patch)
tree0240472f8fb70260611adec50a8b9108446883c0
parente182d8f6c4e086109f6d64e377fa15477c8407d0 (diff)
parentb2f2c99b2088f5f0e685c02227ba6a8bfa63cbb6 (diff)
Merge pull request #13941 from vespa-engine/mpolden/log-lb-transition
Log load balancer state transition
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerId.java5
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java22
2 files changed, 18 insertions, 9 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerId.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerId.java
index 1431f21de47..3630cf4c1e4 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerId.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerId.java
@@ -50,6 +50,11 @@ public class LoadBalancerId {
return Objects.hash(application, cluster);
}
+ @Override
+ public String toString() {
+ return "load balancer " + serializedForm;
+ }
+
/** Create an instance from a serialized value on the form tenant:application:instance:cluster-id */
public static LoadBalancerId fromSerializedForm(String value) {
int lastSeparator = value.lastIndexOf(":");
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
index 60b280ae2de..6403bbe2b0c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
@@ -165,33 +165,33 @@ public class LoadBalancerProvisioner {
if (loadBalancer.isEmpty() && activate) return; // Nothing to activate as this load balancer was never prepared
var force = loadBalancer.isPresent() && loadBalancer.get().state() != LoadBalancer.State.active;
- var instance = provisionInstance(application, clusterId, nodes, force);
+ var instance = provisionInstance(id, nodes, force);
LoadBalancer newLoadBalancer;
if (loadBalancer.isEmpty()) {
newLoadBalancer = new LoadBalancer(id, instance, LoadBalancer.State.reserved, now);
} else {
var newState = activate ? LoadBalancer.State.active : loadBalancer.get().state();
newLoadBalancer = loadBalancer.get().with(instance).with(newState, now);
+ if (loadBalancer.get().state() != newLoadBalancer.state()) {
+ log.log(logLevel(), "Moving " + newLoadBalancer.id() + " to state " + newLoadBalancer.state());
+ }
}
db.writeLoadBalancer(newLoadBalancer);
}
- private LoadBalancerInstance provisionInstance(ApplicationId application, ClusterSpec.Id cluster, List<Node> nodes,
- boolean force) {
+ private LoadBalancerInstance provisionInstance(LoadBalancerId id, List<Node> nodes, boolean force) {
var reals = new LinkedHashSet<Real>();
for (var node : nodes) {
for (var ip : reachableIpAddresses(node)) {
reals.add(new Real(HostName.from(node.hostname()), ip));
}
}
- log.log(Level.FINE, "Creating load balancer for " + cluster + " in " + application.toShortString() +
- ", targeting: " + reals);
+ log.log(logLevel(), "Creating " + id + ", targeting: " + reals);
try {
- return service.create(new LoadBalancerSpec(application, cluster, reals), force);
+ return service.create(new LoadBalancerSpec(id.application(), id.cluster(), reals), force);
} catch (Exception e) {
- throw new LoadBalancerServiceException("Failed to (re)configure load balancer for " + cluster + " in " +
- application + ", targeting: " + reals + ". The operation will be " +
- "retried on next deployment", e);
+ throw new LoadBalancerServiceException("Failed to (re)configure " + id + ", targeting: " +
+ reals + ". The operation will be retried on next deployment", e);
}
}
@@ -233,4 +233,8 @@ public class LoadBalancerProvisioner {
return cluster.combinedId().orElse(cluster.id());
}
+ private Level logLevel() {
+ return nodeRepository.zone().system().isCd() ? Level.INFO : Level.FINE;
+ }
+
}