|
62 | 62 | import static org.elasticsearch.indices.ShardLimitValidator.FROZEN_GROUP;
|
63 | 63 | import static org.elasticsearch.indices.ShardLimitValidator.INDEX_SETTING_SHARD_LIMIT_GROUP;
|
64 | 64 | import static org.elasticsearch.indices.ShardLimitValidator.NORMAL_GROUP;
|
| 65 | +import static org.elasticsearch.indices.ShardLimitValidator.SETTING_CLUSTER_MAX_SHARDS_PER_NODE; |
| 66 | +import static org.elasticsearch.indices.ShardLimitValidator.SETTING_CLUSTER_MAX_SHARDS_PER_NODE_FROZEN; |
| 67 | +import static org.hamcrest.Matchers.allOf; |
| 68 | +import static org.hamcrest.Matchers.containsString; |
65 | 69 | import static org.hamcrest.Matchers.equalTo;
|
66 | 70 | import static org.hamcrest.Matchers.hasSize;
|
67 | 71 | import static org.hamcrest.Matchers.is;
|
@@ -93,7 +97,6 @@ public void setUp() throws Exception {
|
93 | 97 | .build();
|
94 | 98 |
|
95 | 99 | clusterService = ClusterServiceUtils.createClusterService(threadPool);
|
96 |
| - |
97 | 100 | featureService = Mockito.mock(FeatureService.class);
|
98 | 101 | Mockito.when(featureService.clusterHasFeature(any(), any())).thenReturn(true);
|
99 | 102 | }
|
@@ -159,6 +162,30 @@ public void testIndicatorYieldsGreenInCaseThereIsRoom() throws IOException {
|
159 | 162 | );
|
160 | 163 | }
|
161 | 164 |
|
| 165 | + public void testDiagnoses() { |
| 166 | + assertEquals("shards_capacity", SHARDS_MAX_CAPACITY_REACHED_DATA_NODES.definition().indicatorName()); |
| 167 | + assertEquals("decrease_shards_per_non_frozen_node", SHARDS_MAX_CAPACITY_REACHED_DATA_NODES.definition().id()); |
| 168 | + assertThat( |
| 169 | + SHARDS_MAX_CAPACITY_REACHED_DATA_NODES.definition().cause(), |
| 170 | + allOf(containsString("maximum number of shards"), containsString(SETTING_CLUSTER_MAX_SHARDS_PER_NODE.getKey())) |
| 171 | + ); |
| 172 | + assertThat( |
| 173 | + SHARDS_MAX_CAPACITY_REACHED_DATA_NODES.definition().action(), |
| 174 | + allOf(containsString("Increase the number of nodes in your cluster"), containsString("remove some non-frozen indices")) |
| 175 | + ); |
| 176 | + |
| 177 | + assertEquals("shards_capacity", SHARDS_MAX_CAPACITY_REACHED_FROZEN_NODES.definition().indicatorName()); |
| 178 | + assertEquals("decrease_shards_per_frozen_node", SHARDS_MAX_CAPACITY_REACHED_FROZEN_NODES.definition().id()); |
| 179 | + assertThat( |
| 180 | + SHARDS_MAX_CAPACITY_REACHED_FROZEN_NODES.definition().cause(), |
| 181 | + allOf(containsString("maximum number of shards"), containsString(SETTING_CLUSTER_MAX_SHARDS_PER_NODE_FROZEN.getKey())) |
| 182 | + ); |
| 183 | + assertThat( |
| 184 | + SHARDS_MAX_CAPACITY_REACHED_FROZEN_NODES.definition().action(), |
| 185 | + allOf(containsString("Increase the number of nodes in your cluster"), containsString("remove some frozen indices")) |
| 186 | + ); |
| 187 | + } |
| 188 | + |
162 | 189 | public void testIndicatorYieldsYellowInCaseThereIsNotEnoughRoom() throws IOException {
|
163 | 190 | {
|
164 | 191 | // Only data_nodes does not have enough space
|
@@ -378,11 +405,11 @@ public void testCalculateMethods() {
|
378 | 405 | public void testMappedFieldsForTelemetry() {
|
379 | 406 | assertEquals(ShardsCapacityHealthIndicatorService.NAME, "shards_capacity");
|
380 | 407 | assertEquals(
|
381 |
| - "elasticsearch:health:shards_capacity:diagnosis:increase_max_shards_per_node", |
| 408 | + "elasticsearch:health:shards_capacity:diagnosis:decrease_shards_per_non_frozen_node", |
382 | 409 | SHARDS_MAX_CAPACITY_REACHED_DATA_NODES.definition().getUniqueId()
|
383 | 410 | );
|
384 | 411 | assertEquals(
|
385 |
| - "elasticsearch:health:shards_capacity:diagnosis:increase_max_shards_per_node_frozen", |
| 412 | + "elasticsearch:health:shards_capacity:diagnosis:decrease_shards_per_frozen_node", |
386 | 413 | SHARDS_MAX_CAPACITY_REACHED_FROZEN_NODES.definition().getUniqueId()
|
387 | 414 | );
|
388 | 415 | }
|
@@ -442,7 +469,7 @@ private ClusterState createClusterState(
|
442 | 469 | var metadata = Metadata.builder()
|
443 | 470 | .persistentSettings(
|
444 | 471 | Settings.builder()
|
445 |
| - .put(ShardLimitValidator.SETTING_CLUSTER_MAX_SHARDS_PER_NODE.getKey(), maxShardsPerNode) |
| 472 | + .put(SETTING_CLUSTER_MAX_SHARDS_PER_NODE.getKey(), maxShardsPerNode) |
446 | 473 | .put(ShardLimitValidator.SETTING_CLUSTER_MAX_SHARDS_PER_NODE_FROZEN.getKey(), maxShardsPerNodeFrozen)
|
447 | 474 | .build()
|
448 | 475 | );
|
|
0 commit comments