elasticsearch/docs/reference/fleet/get-global-checkpoints.asciidoc
Tim Brooks bfb85bcecb
Wait on index when polling global checkpoints (#71890)
Currently when the fleet global checkpoints API returns immediately if
the index is not ready or shards are not ready. This commit modifies the
API to wait on the index and primary shards active up until the timeout
period.

Related to #71449.
2021-04-20 13:04:42 -06:00

90 lines
3.1 KiB
Text

[role="xpack"]
[[get-global-checkpoints]]
=== Get global checkpoints API
++++
<titleabbrev>Get global checkpoints</titleabbrev>
++++
The purpose of the get global checkpoints api is to return the current global
checkpoints for an index. This API allows users to know the what sequence numbers
have been safely persisted in Elasticsearch.
[discrete]
[[polling-on-global-checkpoint]]
== Polling on global checkpoint advance
The API has an optional polling mode enabled by the `wait_for_advance` query
parameter. In polling mode, the API will only return after the global checkpoints
advance past the provided `checkpoints`. By default, `checkpoints` is an empty
array, which will lead to the API returning immediately.
If a timeout occurs before the global checkpoints advance past the provided
`checkpoints`, Elasticsearch will return the current global checkpoints and a
boolean indicating that the request timed out.
Currently the `wait_for_advance` parameter is only supported for one shard indices.
[discrete]
[[polling-on-index]]
== Polling on index ready
By default in polling mode, an exception will be returned if the index does not
exist or all the primary shards are not active. In polling mode, the
`wait_for_index` parameter can be used to modify this behavior. If `wait_for_index`
is set to true, the API will wait for the index to be created and all primary
shards to be active.
If a timeout occurs before these conditions are met, the relevant exception will be
returned.
Currently the `wait_for_index` parameter is only supported when `wait_for_advance`
is true.
[[get-global-checkpoints-api-request]]
==== {api-request-title}
`GET /<index>/_fleet/global_checkpoints`
[[get-global-checkpoints-api-path-params]]
==== {api-path-parms-title}
`<index>`::
(Required, string)
A single index or index alias that resolves to a single index.
[role="child_attributes"]
[[get-global-checkpoints-api-query-parms]]
==== {api-query-parms-title}
`wait_for_advance`::
(Optional, Boolean) A boolean value which controls whether to wait (until the
`timeout`) for the global checkpoints to advance past the provided
`checkpoints`. Defaults to `false`.
`wait_for_index`::
(Optional, Boolean) A boolean value which controls whether to wait (until the
`timeout`) for the target index to exist and all primary shards be active. Can
only be `true` when `wait_for_advance` is `true`. Defaults to `false`.
`checkpoints`::
(Optional, list) A comma separated list of previous global checkpoints.
When used in combination with `wait_for_advance`, the API will only return once
the global checkpoints advances past the `checkpoints`. Defaults to an empty list
which will cause Elasticsearch to immediately return the current global
checkpoints.
`timeout`::
(Optional, <<time-units, time units>>)
Period to wait for a global checkpoints to advance past `checkpoints`.
Defaults to `30s`.
[role="child_attributes"]
[[get-global-checkpoints-api-response-body]]
==== {api-response-body-title}
`global_checkpoints`::
(array of integers) The global checkpoints for the index.
`timed_out`::
(Boolean) If `false` the global checkpoints did not advance past the
`checkpoints` within the specified `timeout`.