aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@vespa.ai>2023-05-18 16:11:53 +0200
committerJon Bratseth <bratseth@vespa.ai>2023-05-18 16:11:53 +0200
commitff426d5cf4d02a259719770a360cce664087503d (patch)
tree876d62bba13f3db7cfcead2afff6b1a33d5440a8 /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java
parent3a88b880f0b6323959dafeeb8e0076a7f515e311 (diff)
Add cluster load metrics
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java
index 4f94f0fab53..f01f5a30870 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.maintenance;
+import ai.vespa.metrics.ConfigServerMetrics;
import com.yahoo.collections.Pair;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
@@ -18,6 +19,7 @@ import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.Node.State;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
+import com.yahoo.vespa.hosted.provision.applications.Cluster;
import com.yahoo.vespa.hosted.provision.node.Allocation;
import com.yahoo.vespa.hosted.provision.node.ClusterId;
import com.yahoo.vespa.hosted.provision.persistence.CacheStats;
@@ -118,7 +120,7 @@ public class MetricsReporter extends NodeRepositoryMaintainer {
byCluster.forEach((clusterId, clusterNodes) -> {
Metric.Context context = getContext(dimensions(clusterId.application(), clusterId.cluster()));
updateExclusiveSwitchMetrics(clusterNodes, nodes, context);
- updateClusterCostMetrics(clusterNodes, context);
+ updateClusterCostMetrics(clusterId, clusterNodes, context);
});
}
@@ -129,9 +131,16 @@ public class MetricsReporter extends NodeRepositoryMaintainer {
metric.set("nodes.exclusiveSwitchFraction", exclusiveSwitchRatio,context);
}
- private void updateClusterCostMetrics(List<Node> clusterNodes, Metric.Context context) {
+ private void updateClusterCostMetrics(ClusterId clusterId,
+ List<Node> clusterNodes, Metric.Context context) {
+ var cluster = nodeRepository().applications().get(clusterId.application())
+ .flatMap(application -> application.cluster(clusterId.cluster()));
+ if (cluster.isEmpty()) return;
double cost = clusterNodes.stream().mapToDouble(node -> node.resources().cost()).sum();
- metric.set("cluster.cost", cost, context);
+ metric.set(ConfigServerMetrics.CLUSTER_COST.baseName(), cost, context);
+ metric.set(ConfigServerMetrics.CLUSTER_LOAD_IDEAL_CPU.baseName(), cluster.get().target().ideal().cpu(), context);
+ metric.set(ConfigServerMetrics.CLUSTER_LOAD_IDEAL_MEMORY.baseName(), cluster.get().target().ideal().memory(), context);
+ metric.set(ConfigServerMetrics.CLUSTER_LOAD_IDEAL_DISK.baseName(), cluster.get().target().ideal().disk(), context);
}
private void updateZoneMetrics() {