elasticsearch/docs/changelog
Niels Bauman ede1d060c0
Limit number of allocation explanations in `shards_availability` health indicator (#136060)
We currently compute the shard allocation explanation for every
unassigned shard (primaries and replicas) in the health report API when
`verbose` is `true`, which includes the periodic health logs. Computing
the shard allocation explanation of a shard is quite expensive in large
clusters. Therefore, when there are lots of unassigned shards,
`ShardsAvailabilityHealthIndicatorService` can take a long time to
complete - we've seen cases of 2 minutes with 40k unassigned shards.

To avoid the runtime of `ShardsAvailabilityHealthIndicatorService`
scaling linearly with the number of unassigned shards (times the size of
the cluster), we limit the number of allocation explanations we compute
to `maxAffectedResourcesCount`, which comes from the `size` parameter of
the `_health_report` API and currently defaults to `1000` - a follow-up
PR will address the high default size. This significantly reduces the
runtime of this health indicator and avoids the periodic health logs
from overlapping.

A downside of this change is that the returned list of diagnoses may be
incomplete. For example, if the `size` parameter is set to `10`, and the
first 10 shards are unassigned due to reason `X` and the remaining
unassigned shards due to reason `Y`, only reason `X` will be returned in
the health API. We accept this downside as we expect that there are
generally not many different diagnoses relevant - if more than `size`
shards are unassigned, they're likely all unassigned due to the same
reason. Users can always increase `size` and/or manually call the
allocation explain API to get more detailed information.
2025-10-10 17:50:01 +02:00
..
74274.yaml
92568.yaml
105718.yaml
113949.yaml
125552.yaml
125921.yaml
127053.yaml [125499] Add missing fields in monitoring logstash mb template mapping (#127053) 2025-10-07 22:02:33 -06:00
127223.yaml
128627.yaml
128639.yaml
128866.yaml
128917.yaml
129003.yaml
129013.yaml
129090.yaml
129146.yaml
129369.yaml
129581.yaml
129662.yaml
129693.yaml
129848.yaml
129872.yaml
129929.yaml
129945.yaml
129967.yaml
129990.yaml
130027.yaml
130092.yaml
130140.yaml
130251.yaml
130325.yaml
130330.yaml
130382.yaml
130409.yaml
130463.yaml
130485.yaml
130510.yaml
130531.yaml
130544.yaml
130593.yaml
130594.yaml
130635.yaml
130658.yaml
130824.yaml
130834.yaml
130847.yaml
130855.yaml
130909.yaml
130939.yaml
130940.yaml
130944.yaml
130947.yaml
131027.yaml
131056.yaml
131058.yaml
131061.yaml
131173.yaml
131200.yaml
131204.yaml
131238.yaml
131261.yaml
131296.yaml
131317.yaml
131341.yaml
131390.yaml
131395.yaml
131442.yaml
131485.yaml
131510.yaml
131517.yaml
131531.yaml
131536.yaml
131551.yaml
131559.yaml
131581.yaml
131599.yaml
131641.yaml
131694.yaml
131706.yaml
131723.yaml
131733.yaml
131775.yaml
131907.yaml
131937.yaml
131940.yaml
132003.yaml
132011.yaml
132048.yaml
132064.yaml
132083.yaml
132131.yaml
132138.yaml
132143.yaml
132210.yaml
132243.yaml
132321.yaml
132362.yaml
132408.yaml
132410.yaml
132414.yaml
132456.yaml
132497.yaml
132506.yaml
132511.yaml
132512.yaml
132536.yaml
132547.yaml
132548.yaml
132622.yaml
132651.yaml
132675.yaml
132680.yaml
132689.yaml
132738.yaml
132744.yaml
132765.yaml
132774.yaml
132833.yaml
132845.yaml
132858.yaml
132934.yaml
132950.yaml
132959.yaml
132962.yaml
132967.yaml
133016.yaml
133018.yaml
133030.yaml
133064.yaml
133074.yaml
133087.yaml
133111.yaml
133154.yaml
133166.yaml
133193.yaml
133245.yaml
133314.yaml
133357.yaml
133360.yaml
133365.yaml
133369.yaml
133397.yaml
133403.yaml
133405.yaml
133546.yaml
133576.yaml
133599.yaml
133601.yaml
133616.yaml
133636.yaml
133659.yaml
133675.yaml
133683.yaml
133718.yaml
133720.yaml
133722.yaml
133745.yaml
133860.yaml
133861.yaml
133897.yaml
133916.yaml
133930.yaml
133952.yaml
133954.yaml
133968.yaml
133980.yaml
134029.yaml
134033.yaml
134080.yaml
134098.yaml
134117.yaml
134137.yaml
134152.yaml
134178.yaml
134198.yaml
134214.yaml
134232.yaml
134309.yaml
134317.yaml
134323.yaml
134349.yaml
134361.yaml
134365.yaml
134374.yaml
134415.yaml
134446.yaml
134457.yaml
134458.yaml
134475.yaml
134497.yaml
134504.yaml
134524.yaml
134585.yaml
134604.yaml
134609.yaml
134629.yaml
134717.yaml
134798.yaml
134822.yaml
134835.yaml
134851.yaml
134879.yaml
134893.yaml
134894.yml
134933.yaml
134936.yaml
134941.yaml
134942.yaml
134952.yaml
134960.yaml
135011.yaml
135026.yaml
135036.yaml
135039.yaml
135053.yaml
135087.yaml
135097.yaml
135198.yaml
135204.yaml
135244.yaml
135247.yaml
135262.yaml
135263.yaml
135271.yaml
135295.yaml ESQL: Replace any Attribute type when pushing down past Project (#135295) 2025-10-09 14:17:01 +03:00
135299.yaml
135306.yaml
135309.yaml
135337.yaml
135342.yaml
135370.yaml
135373.yaml
135393.yaml
135401.yaml
135402.yaml
135403.yaml
135431.yaml
135446.yaml ESQL: Fix projection generation when pruning left join (#135446) 2025-10-07 14:23:22 +03:00
135484.yaml
135524.yaml
135545.yaml
135547.yaml
135549.yaml Add time range bucketing attribute to APM took time latency metrics (#135549) 2025-10-07 08:38:24 +02:00
135597.yaml
135603.yaml
135604.yaml
135635.yaml
135644.yaml
135652.yaml
135673.yaml
135674.yaml Send cross cluster api key signature as header (#135674) 2025-10-10 12:21:45 +02:00
135701.yaml Add Google Model Garden's Meta, Mistral, Hugging Face and Ai21 providers support to Inference Plugin (#135701) 2025-10-10 11:04:43 -04:00
135709.yaml
135714.yaml
135734.yaml
135765.yaml
135767.yaml
135778.yaml Add on-disk rescoring to disk BBQ (#135778) 2025-10-07 14:35:59 +01:00
135800.yaml
135838.yaml [ML] Remove rate limit field from services API for EIS (#135838) 2025-10-09 15:02:19 +02:00
135851.yaml
135854.yaml
135873.yaml Convert BytesTransportResponse when proxying response from/to local node (#135873) 2025-10-06 14:01:49 +02:00
135886.yaml Provide defaults for index sort settings (#135886) 2025-10-08 13:15:20 -07:00
135895.yaml [ES|QL] Add optional parameters support to KQL function (#135895) 2025-10-07 10:34:47 +02:00
135897.yaml
135901.yaml
135949.yaml Add convenience API key param to remote reindex (#135949) 2025-10-07 10:55:15 +01:00
135966.yaml [ML] Ensure queued AbstractRunnables are notified when executor stops (#135966) 2025-10-07 11:55:26 -07:00
135987.yaml Avoid rewrite round_to with expensive queries (#135987) 2025-10-04 17:17:47 +02:00
135994.yaml Cardinality Aggregator Throws UnsupportedOperationException When Field Type is Vector (#135994) 2025-10-06 08:34:24 -05:00
136017.yaml [ML] Make the Cohere service Model Id field is required (#136017) 2025-10-07 17:29:05 +02:00
136030.yaml Update to lucene 10.3.1 (#136030) 2025-10-06 17:25:10 +01:00
136060.yaml Limit number of allocation explanations in `shards_availability` health indicator (#136060) 2025-10-10 17:50:01 +02:00
136066.yaml Simulate shards moved by explicit commands (#136066) 2025-10-09 01:33:49 +02:00
136072.yaml Extend time range bucketing attributes to retrievers (#136072) 2025-10-07 14:27:59 +01:00
136086.yaml Delay automaton creation in BinaryDvConfirmedQuery to avoid OOM on queries against WildCard fields (#136086) 2025-10-08 08:43:56 +02:00
136103.yaml [ES|QL] Enable the TEXT_EMBEDDING function in non-snapshot build (#136103) 2025-10-08 12:56:31 +02:00
136105.yaml ESQL: Fix a breaker bug (#136105) 2025-10-09 09:50:44 -04:00
136119.yaml Fix logsdb settings provider mapping filters (#136119) 2025-10-08 07:24:14 -07:00
136214.yaml Using index setting providers for data stream setting validation (#136214) 2025-10-09 10:30:38 -05:00
136266.yaml ES|QL: fix Page.equals() (#136266) 2025-10-09 16:11:15 +02:00
136279.yaml Initialize `TermsEnum` eagerly (#136279) 2025-10-09 14:35:59 +01:00
136312.yaml Fix inference fields handling on old indices (#136312) 2025-10-10 00:29:42 +02:00
136315.yaml Store full path in _ignored when ignoring dynamic array field (#136315) 2025-10-09 13:26:56 -07:00