summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'clustercontroller-core/src/main/java/com')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceExhaustionCalculator.java12
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/hostinfo/ResourceUsage.java13
2 files changed, 19 insertions, 6 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceExhaustionCalculator.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceExhaustionCalculator.java
index 80b8a6110f1..c91c5dbeb8d 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceExhaustionCalculator.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceExhaustionCalculator.java
@@ -37,9 +37,7 @@ public class ResourceExhaustionCalculator {
int maxDescriptions = 3;
String description = exhaustions.stream()
.limit(maxDescriptions)
- .map(n -> String.format("%s on node %s (%.3g > %.3g)",
- n.resourceType, n.node.getIndex(),
- n.resourceUsage.getUsage(), n.limit))
+ .map(ResourceExhaustionCalculator::formatNodeResourceExhaustion)
.collect(Collectors.joining(", "));
if (exhaustions.size() > maxDescriptions) {
description += String.format(" (... and %d more)", exhaustions.size() - maxDescriptions);
@@ -47,6 +45,14 @@ public class ResourceExhaustionCalculator {
return ClusterStateBundle.FeedBlock.blockedWithDescription(description);
}
+ private static String formatNodeResourceExhaustion(NodeResourceExhaustion n) {
+ return String.format("%s%s on node %s (%.3g > %.3g)",
+ n.resourceType,
+ (n.resourceUsage.getName() != null ? ":" + n.resourceUsage.getName() : ""),
+ n.node.getIndex(),
+ n.resourceUsage.getUsage(), n.limit);
+ }
+
public List<NodeResourceExhaustion> resourceExhaustionsFromHostInfo(Node node, HostInfo hostInfo) {
List<NodeResourceExhaustion> exceedingLimit = null;
for (var usage : hostInfo.getContentNode().getResourceUsage().entrySet()) {
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/hostinfo/ResourceUsage.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/hostinfo/ResourceUsage.java
index e47ec5452a4..876bf9480a6 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/hostinfo/ResourceUsage.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/hostinfo/ResourceUsage.java
@@ -11,9 +11,12 @@ import java.util.Objects;
*/
public class ResourceUsage {
private final Double usage;
+ private final String name;
- public ResourceUsage(@JsonProperty("usage") Double usage) {
+ public ResourceUsage(@JsonProperty("usage") Double usage,
+ @JsonProperty("name") String name) {
this.usage = usage;
+ this.name = name;
}
/** Resource usage in [0, 1] */
@@ -21,16 +24,20 @@ public class ResourceUsage {
return usage;
}
+ public String getName() {
+ return name;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ResourceUsage that = (ResourceUsage) o;
- return Objects.equals(usage, that.usage);
+ return Objects.equals(usage, that.usage) && Objects.equals(name, that.name);
}
@Override
public int hashCode() {
- return Objects.hash(usage);
+ return Objects.hash(usage, name);
}
}