aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2
diff options
context:
space:
mode:
Diffstat (limited to 'clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2')
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerMock.java18
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterTest.java42
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/StateRestApiTest.java2
3 files changed, 61 insertions, 1 deletions
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerMock.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerMock.java
index d06cc730b3f..902b1bce24a 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerMock.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterControllerMock.java
@@ -15,6 +15,8 @@ public class ClusterControllerMock implements RemoteClusterControllerTaskSchedul
private final int fleetControllerIndex;
Integer fleetControllerMaster;
private final StringBuilder events = new StringBuilder();
+ ContentNodeStats globalClusterStats = new ContentNodeStats(-1);
+ boolean enableGlobalStatsReporting = false;
ClusterControllerMock(ContentCluster cluster, ClusterState state,
ClusterStateBundle publishedClusterStateBundle,
@@ -88,6 +90,22 @@ public class ClusterControllerMock implements RemoteClusterControllerTaskSchedul
}
};
+ context.aggregatedClusterStats = new AggregatedClusterStats() {
+ @Override
+ public boolean hasUpdatesFromAllDistributors() {
+ return enableGlobalStatsReporting;
+ }
+
+ @Override
+ public ContentClusterStats getStats() {
+ return null;
+ }
+
+ @Override
+ public ContentNodeStats getGlobalStats() {
+ return globalClusterStats;
+ }
+ };
}
@Override
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterTest.java
index e4b3c0b9f2c..cb1213542ce 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/ClusterTest.java
@@ -1,6 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.clustercontroller.core.restapiv2;
+import com.yahoo.vespa.clustercontroller.core.ContentNodeStatsBuilder;
import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse;
import org.junit.jupiter.api.Test;
@@ -105,4 +106,45 @@ public class ClusterTest extends StateRestApiTest {
}""",
jsonWriter.createJson(response).toPrettyString());
}
+
+ @Test
+ void emit_cluster_stats_if_present() throws Exception {
+ setUp(true);
+ books.globalClusterStats.add(ContentNodeStatsBuilder.forNode(-1).add("default", 10, 4).build());
+ books.enableGlobalStatsReporting = true;
+ UnitResponse response = restAPI.getState(new StateRequest("books", 0));
+ assertEquals("""
+ {
+ "state" : {
+ "generated" : {
+ "state" : "up",
+ "reason" : ""
+ }
+ },
+ "metrics" : {
+ "cluster-buckets-out-of-sync-ratio" : 0.4
+ },
+ "service" : {
+ "storage" : {
+ "link" : "/cluster/v2/books/storage"
+ },
+ "distributor" : {
+ "link" : "/cluster/v2/books/distributor"
+ }
+ },
+ "distribution-states" : {
+ "published" : {
+ "baseline" : "distributor:4 storage:4",
+ "bucket-spaces" : [ {
+ "name" : "default",
+ "state" : "distributor:4 storage:4 .3.s:m"
+ }, {
+ "name" : "global",
+ "state" : "distributor:4 storage:4"
+ } ]
+ }
+ }
+ }""",
+ jsonWriter.createJson(response).toPrettyString());
+ }
}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/StateRestApiTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/StateRestApiTest.java
index dfd9783ecef..1ad5f6828b7 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/StateRestApiTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/StateRestApiTest.java
@@ -30,7 +30,7 @@ import java.util.stream.Collectors;
public abstract class StateRestApiTest {
- private ClusterControllerMock books;
+ ClusterControllerMock books;
ClusterControllerMock music;
StateRestAPI restAPI;
JsonWriter jsonWriter = new JsonWriter();