diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-02-16 23:17:57 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-02-16 23:17:57 +0100 |
commit | eeb1d6f777d2a983086653924c5bd459eadc5553 (patch) | |
tree | 8eca843aedce85b2eac18184c4d4e020e5831c58 /controller-server | |
parent | bbd2558265dd80455f6b03285be926017c20a6ab (diff) |
Add cluster utilization to node repo client and application/v4
Diffstat (limited to 'controller-server')
3 files changed, 13 insertions, 0 deletions
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 f9dc62d7f34..38bcfda0ac7 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 @@ -740,6 +740,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { && ! cluster.target().get().justNumbers().equals(cluster.current().justNumbers())) toSlime(cluster.target().get(), clusterObject.setObject("target")); cluster.suggested().ifPresent(suggested -> toSlime(suggested, clusterObject.setObject("suggested"))); + utilizationToSlime(cluster.utilization(), clusterObject.setObject("utilization")); scalingEventsToSlime(cluster.scalingEvents(), clusterObject.setArray("scalingEvents")); clusterObject.setString("autoscalingStatus", cluster.autoscalingStatus()); } @@ -1984,6 +1985,12 @@ public class ApplicationApiHandler extends LoggingRequestHandler { object.setDouble("cost", Math.round(resources.nodes() * resources.nodeResources().cost() * 100.0 / 3.0) / 100.0); } + private void utilizationToSlime(Cluster.Utilization utilization, Cursor utilizationObject) { + utilizationObject.setDouble("cpu", utilization.cpu()); + utilizationObject.setDouble("memory", utilization.memory()); + utilizationObject.setDouble("disk", utilization.disk()); + } + private void scalingEventsToSlime(List<Cluster.ScalingEvent> scalingEvents, Cursor scalingEventsArray) { for (Cluster.ScalingEvent scalingEvent : scalingEvents) { Cursor scalingEventObject = scalingEventsArray.addObject(); 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 ee3c523a497..7ce1e6b8b83 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 @@ -115,6 +115,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), 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 817cee7732a..2c208359f1b 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 @@ -53,6 +53,11 @@ }, "cost": "(ignore)" }, + "utilization": { + "cpu": 0.1, + "memory": 0.2, + "disk": 0.3 + }, "scalingEvents": [ { "from": { |