summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'clustercontroller-core/src/main/java')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MetricUpdater.java2
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStats.java28
2 files changed, 26 insertions, 4 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MetricUpdater.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MetricUpdater.java
index 53e62ab3e10..6a80772904f 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MetricUpdater.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/MetricUpdater.java
@@ -64,6 +64,8 @@ public class MetricUpdater {
metricReporter.set("resource_usage.max_disk_utilization", resourceUsage.getMaxDiskUtilization(), context);
metricReporter.set("resource_usage.max_memory_utilization", resourceUsage.getMaxMemoryUtilization(), context);
metricReporter.set("resource_usage.nodes_above_limit", resourceUsage.getNodesAboveLimit(), context);
+ metricReporter.set("resource_usage.disk_limit", resourceUsage.getDiskLimit(), context);
+ metricReporter.set("resource_usage.memory_limit", resourceUsage.getMemoryLimit(), context);
}
public void updateMasterElectionMetrics(Map<Integer, Integer> data) {
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStats.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStats.java
index a2b3c3a0415..53d801e609d 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStats.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStats.java
@@ -22,6 +22,9 @@ public class ResourceUsageStats {
// When this is above zero feed is blocked in the cluster.
private final int nodesAboveLimit;
+ private final double diskLimit;
+ private final double memoryLimit;
+
private static final String diskResource = "disk";
private static final String memoryResource = "memory";
@@ -29,14 +32,20 @@ public class ResourceUsageStats {
this.maxDiskUtilization = 0.0;
this.maxMemoryUtilization = 0.0;
this.nodesAboveLimit = 0;
+ this.diskLimit = 0.0;
+ this.memoryLimit = 0.0;
}
public ResourceUsageStats(double maxDiskUtilization,
double maxMemoryUtilization,
- int nodesAboveLimit) {
+ int nodesAboveLimit,
+ double diskLimit,
+ double memoryLimit) {
this.maxDiskUtilization = maxDiskUtilization;
this.maxMemoryUtilization = maxMemoryUtilization;
this.nodesAboveLimit = nodesAboveLimit;
+ this.diskLimit = diskLimit;
+ this.memoryLimit = memoryLimit;
}
public double getMaxDiskUtilization() {
@@ -51,6 +60,14 @@ public class ResourceUsageStats {
return nodesAboveLimit;
}
+ public double getDiskLimit() {
+ return diskLimit;
+ }
+
+ public double getMemoryLimit() {
+ return memoryLimit;
+ }
+
public static ResourceUsageStats calculateFrom(Collection<NodeInfo> nodeInfos,
Map<String, Double> feedBlockLimits,
Optional<ClusterStateBundle.FeedBlock> feedBlock) {
@@ -63,9 +80,12 @@ public class ResourceUsageStats {
maxMemoryUsage = Double.max(maxMemoryUsage, resourceUsageOf(memoryResource, node));
}
}
- return new ResourceUsageStats(maxDiskUsage / limitOf(diskResource, feedBlockLimits),
- maxMemoryUsage / limitOf(memoryResource, feedBlockLimits),
- calculateNodesAboveLimit(feedBlock));
+ double diskLimit = limitOf(diskResource, feedBlockLimits);
+ double memoryLimit = limitOf(memoryResource, feedBlockLimits);
+ return new ResourceUsageStats(maxDiskUsage / diskLimit,
+ maxMemoryUsage / memoryLimit,
+ calculateNodesAboveLimit(feedBlock),
+ diskLimit, memoryLimit);
}
private static double resourceUsageOf(String type, ContentNode node) {