### Description

The health API response can become a few MBs (2-3MB if 50K indices are affected).

In less extreme situations the response can be in the 10s/100s of KB. 

It might be worthwhile looking into chunking its response (this might provide clients with a better experience too)
server/src/main/java/org/elasticsearch/health/GetHealthAction.java
@Override
        public void writeTo(StreamOutput out) throws IOException {
            throw new AssertionError("GetHealthAction should not be sent over the wire.");
        }
        @Override
        public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException {
            builder.startObject();
            if (status != null) {
                builder.field("status", status.xContentValue());
            }
            builder.field("cluster_name", clusterName.value());
            builder.startObject("indicators");
            for (HealthIndicatorResult result : indicators) {
                builder.field(result.name(), result, params);
            }
            builder.endObject();
            return builder.endObject();
        }
        @Override
        public boolean equals(Object o) {
            if (this == o) {
                return true;
            }
            if (o == null || getClass() != o.getClass()) {
                return false;
            }
            Response response = (Response) o;
            return clusterName.equals(response.clusterName) && status == response.status && indicators.equals(response.indicators);
        }
        @Override