diff options
author | Valerij Fredriksen <valerij92@gmail.com> | 2021-05-27 15:16:43 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-05-27 15:44:26 +0200 |
commit | 8744bb9fe90b7cef2e003ae074631990f6046585 (patch) | |
tree | 777325efa289abfec92b3ab7550306b32acbd41f | |
parent | 1aa55fe6dab3fb6c8696625e28fe910e67009f44 (diff) |
Expose current load in controller
5 files changed, 29 insertions, 13 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Cluster.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Cluster.java index 07de259be2f..b3317c7f268 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Cluster.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Cluster.java @@ -77,29 +77,35 @@ public class Cluster { public static class Utilization { - private final double cpu, idealCpu, memory, idealMemory, disk, idealDisk; + private final double cpu, idealCpu, currentCpu, memory, idealMemory, currentMemory, disk, idealDisk, currentDisk; - public Utilization(double cpu, double idealCpu, - double memory, double idealMemory, - double disk, double idealDisk) { + public Utilization(double cpu, double idealCpu, double currentCpu, + double memory, double idealMemory, double currentMemory, + double disk, double idealDisk, double currentDisk) { this.cpu = cpu; this.idealCpu = idealCpu; + this.currentCpu = currentCpu; this.memory = memory; this.idealMemory = idealMemory; + this.currentMemory = currentMemory; this.disk = disk; this.idealDisk = idealDisk; + this.currentDisk = currentDisk; } public double cpu() { return cpu; } public double idealCpu() { return idealCpu; } + public double currentCpu() { return currentCpu; } public double memory() { return memory; } public double idealMemory() { return idealMemory; } + public double currentMemory() { return currentMemory; } public double disk() { return disk; } public double idealDisk() { return idealDisk; } + public double currentDisk() { return currentDisk; } - public static Utilization empty() { return new Utilization(0, 0, 0, 0, 0, 0); } + public static Utilization empty() { return new Utilization(0, 0, 0, 0, 0, 0, 0, 0, 0); } } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ClusterUtilizationData.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ClusterUtilizationData.java index 0465a1037e8..47cb80a98e2 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ClusterUtilizationData.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/ClusterUtilizationData.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.yahoo.vespa.hosted.controller.api.integration.configserver.Cluster; -import java.time.Instant; - /** * Utilization ratios * @@ -21,19 +19,25 @@ public class ClusterUtilizationData { public Double cpu; @JsonProperty("idealCpu") public Double idealCpu; + @JsonProperty("currentCpu") + public Double currentCpu; @JsonProperty("memory") public Double memory; @JsonProperty("idealMemory") public Double idealMemory; + @JsonProperty("currentMemory") + public Double currentMemory; @JsonProperty("disk") public Double disk; @JsonProperty("idealDisk") public Double idealDisk; + @JsonProperty("currentDisk") + public Double currentDisk; public Cluster.Utilization toClusterUtilization() { - return new Cluster.Utilization(cpu, idealCpu, memory, idealMemory, disk, idealDisk); + return new Cluster.Utilization(cpu, idealCpu, currentCpu, memory, idealMemory, currentMemory, disk, idealDisk, currentDisk); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index ae4d891069c..7fcf7554452 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -2092,10 +2092,13 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { private void utilizationToSlime(Cluster.Utilization utilization, Cursor utilizationObject) { utilizationObject.setDouble("cpu", utilization.cpu()); utilizationObject.setDouble("idealCpu", utilization.idealCpu()); + utilizationObject.setDouble("currentCpu", utilization.currentCpu()); utilizationObject.setDouble("memory", utilization.memory()); utilizationObject.setDouble("idealMemory", utilization.idealMemory()); + utilizationObject.setDouble("currentMemory", utilization.currentMemory()); utilizationObject.setDouble("disk", utilization.disk()); utilizationObject.setDouble("idealDisk", utilization.idealDisk()); + utilizationObject.setDouble("currentDisk", utilization.currentDisk()); } private void scalingEventsToSlime(List<Cluster.ScalingEvent> scalingEvents, Cursor scalingEventsArray) { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java index 9e15f2ec788..c3a527a0bd9 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java @@ -117,7 +117,7 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer current, Optional.of(new ClusterResources(2, 1, new NodeResources(3, 8, 50, 1, slow, remote))), Optional.empty(), - new Cluster.Utilization(0.1, 0.2, 0.3, 0.4, 0.5, 0.6), + new Cluster.Utilization(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), List.of(new Cluster.ScalingEvent(new ClusterResources(0, 0, NodeResources.unspecified()), current, Instant.ofEpochMilli(1234), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-clusters.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-clusters.json index 9df83cb2089..cd1fe5acf6a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-clusters.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-clusters.json @@ -57,10 +57,13 @@ "utilization": { "cpu": 0.1, "idealCpu": 0.2, - "memory": 0.3, - "idealMemory": 0.4, - "disk": 0.5, - "idealDisk": 0.6 + "currentCpu": 0.3, + "memory": 0.4, + "idealMemory": 0.5, + "currentMemory": 0.6, + "disk": 0.7, + "idealDisk": 0.8, + "currentDisk": 0.9 }, "scalingEvents": [ { |