eg
```
"impacts": [
            {
              "severity": 3,
              "description": "Searches might return slower than usual. Fewer redundant copies of the data exist on 2 indices [.ds-logslogslogs-2022.03.29-000001, my-index-000001].",
              "impact_areas": [ "search" ]
            }
          ]
```
server/src/main/java/org/elasticsearch/cluster/routing/allocation/ShardsAvailabilityHealthIndicatorService.java
public static final String NAME = "shards_availability";
    private final ClusterService clusterService;
    public ShardsAvailabilityHealthIndicatorService(ClusterService clusterService) {
        this.clusterService = clusterService;
    }
    @Override
    public String name() {
        return NAME;
    }
    @Override
    public String component() {
        return DATA;
    }
    @Override
    public HealthIndicatorResult calculate(boolean includeDetails) {
        var state = clusterService.state();
        var shutdown = state.getMetadata().custom(NodesShutdownMetadata.TYPE, NodesShutdownMetadata.EMPTY);
        var status = new ShardAllocationStatus(state.getMetadata());
        for (IndexRoutingTable indexShardRouting : state.routingTable()) {
            for (int i = 0; i < indexShardRouting.size(); i++) {
                IndexShardRoutingTable shardRouting = indexShardRouting.shard(i);
                status.addPrimary(shardRouting.primaryShard(), shutdown);
                for (ShardRouting replicaShard : shardRouting.replicaShards()) {
                    status.addReplica(replicaShard, shutdown);
                }
            }
        }
        return createIndicator(status.getStatus(), status.getSummary(), status.getDetails(includeDetails), status.getImpacts());
    }
    private static class ShardAllocationCounts {