From eeb1d6f777d2a983086653924c5bd459eadc5553 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Tue, 16 Feb 2021 23:17:57 +0100 Subject: Add cluster utilization to node repo client and application/v4 --- .../controller/restapi/application/ApplicationApiHandler.java | 7 +++++++ .../vespa/hosted/controller/integration/ConfigServerMock.java | 1 + .../restapi/application/responses/application-clusters.json | 5 +++++ 3 files changed, 13 insertions(+) (limited to 'controller-server') 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 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": { -- cgit v1.2.3