In some contexts is unclear why an autoscaling policy decides to request
more resources, i.e. if there's an unassigned shard that remains unassigned
even after adding more resources. It would be help to have more information
around the decisions taken by the deciders so it is easier to understand and
track them.
x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/storage/ProactiveStorageDeciderService.java
}
        @Override
        public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
            builder.startObject();
            builder.field("reason", reason);
            builder.field("unassigned", unassigned);
            builder.field("assigned", assigned);
            builder.field("forecasted", forecasted);
            builder.field("forecast_window", forecastWindow);
            builder.endObject();
            return builder;
        }
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            ProactiveReason that = (ProactiveReason) o;
            return unassigned == that.unassigned
                && assigned == that.assigned
                && forecasted == that.forecasted
                && reason.equals(that.reason)
                && forecastWindow.equals(that.forecastWindow);
        }
        @Override
        public int hashCode() {
            return Objects.hash(reason, unassigned, assigned, forecasted, forecastWindow);
        }
    }
}