44import co .elastic .clients .elasticsearch ._types .Time ;
55import co .elastic .clients .elasticsearch .cluster .StateRequest ;
66import co .elastic .clients .elasticsearch .cluster .StateResponse ;
7+ import co .elastic .clients .elasticsearch .cluster .state .ClusterStateMetric ;
78import jakarta .json .JsonObject ;
89import jakarta .json .JsonValue ;
910import org .apache .logging .log4j .LogManager ;
@@ -112,6 +113,8 @@ public class ClusterStateActionHandler extends ActionHandler<ClusterStateRequest
112113 private static final String KEY_SHARD_LIMITS_TYPE = "shard_limits" ;
113114 private static final String KEY_MAX_SHARDS_PER_NODE = "max_shards_per_node" ;
114115 private static final String KEY_MAX_SHARDS_PER_NODE_FROZEN = "max_shards_per_node_frozen" ;
116+ private static final String KEY_SHARD_CAPACITY_UNHEALTHY_THRESHOLD_YELLOW = "shard_capacity_unhealthy_threshold_yellow" ;
117+ private static final String KEY_SHARD_CAPACITY_UNHEALTHY_THRESHOLD_RED = "shard_capacity_unhealthy_threshold_red" ;
115118
116119 public ClusterStateActionHandler (ElasticsearchClient client ) {
117120 super (client );
@@ -132,19 +135,19 @@ protected StateRequest convertRequest(ClusterStateRequest clusterStateRequest) t
132135 StateRequest .Builder builder = new StateRequest .Builder ();
133136 builder .index (Arrays .asList (clusterStateRequest .indices ()));
134137 if (clusterStateRequest .routingTable ()) {
135- builder .metric (ClusterState . Metric . ROUTING_TABLE . toString () );
138+ builder .metric (ClusterStateMetric . RoutingTable );
136139 }
137140 if (clusterStateRequest .nodes ()) {
138- builder .metric (ClusterState . Metric . NODES . toString () );
141+ builder .metric (ClusterStateMetric . Nodes );
139142 }
140143 if (clusterStateRequest .metadata ()) {
141- builder .metric (ClusterState . Metric . METADATA . toString () );
144+ builder .metric (ClusterStateMetric . Metadata );
142145 }
143146 if (clusterStateRequest .blocks ()) {
144- builder .metric (ClusterState . Metric . BLOCKS . toString () );
147+ builder .metric (ClusterStateMetric . Blocks );
145148 }
146149 if (clusterStateRequest .customs ()) {
147- builder .metric (ClusterState . Metric . CUSTOMS . toString () );
150+ builder .metric (ClusterStateMetric . Customs );
148151 }
149152 Optional .ofNullable (clusterStateRequest .masterTimeout ()).ifPresent (e -> builder .masterTimeout (Time .of (t -> t .time (e .toString ()))));
150153 Optional .ofNullable (clusterStateRequest .waitForTimeout ()).ifPresent (e -> builder .waitForTimeout (Time .of (t -> t .time (e .toString ()))));
@@ -199,7 +202,8 @@ protected ClusterStateResponse convertResponse(StateResponse stateResponse) thro
199202 ByteSizeValue .parseBytesSizeValue (disk .getString (KEY_FLOOD_STAGE_MAX_HEADROOM ), KEY_FLOOD_STAGE_MAX_HEADROOM ),
200203 RelativeByteSizeValue .parseRelativeByteSizeValue (disk .getString (KEY_FROZEN_FLOOD_STAGE_WATERMARK ), KEY_FROZEN_FLOOD_STAGE_WATERMARK ),
201204 ByteSizeValue .parseBytesSizeValue (disk .getString (KEY_FROZEN_FLOOD_STAGE_MAX_HEADROOM ), KEY_FROZEN_FLOOD_STAGE_MAX_HEADROOM )),
202- new HealthMetadata .ShardLimits (shardLimits .getInt (KEY_MAX_SHARDS_PER_NODE ), shardLimits .getInt (KEY_MAX_SHARDS_PER_NODE_FROZEN ))));
205+ new HealthMetadata .ShardLimits (shardLimits .getInt (KEY_MAX_SHARDS_PER_NODE ), shardLimits .getInt (KEY_MAX_SHARDS_PER_NODE_FROZEN ),
206+ shardLimits .getInt (KEY_SHARD_CAPACITY_UNHEALTHY_THRESHOLD_YELLOW ), shardLimits .getInt (KEY_SHARD_CAPACITY_UNHEALTHY_THRESHOLD_RED ))));
203207 }
204208 Map <ProjectId , RoutingTable > map = new HashMap <>(metadata .projects ().size ());
205209 for (Map .Entry <ProjectId , ProjectMetadata > entry : metadata .projects ().entrySet ()) {
0 commit comments