Add ccr follow info api (#37408)

* Add ccr follow info api

This api returns all follower indices and per follower index
the provided parameters at put follow / resume follow time and
whether index following is paused or active.

Closes #37127

* iter

* [DOCS] Edits the get follower info API

* [DOCS] Fixes link to remote cluster

* [DOCS] Clarifies descriptions for configured parameters
This commit is contained in:
Martijn van Groningen 2019-01-18 16:37:21 +01:00 committed by GitHub
parent 377d96e376
commit 6846666b6b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 1048 additions and 19 deletions

View file

@ -22,6 +22,7 @@ You can use the following APIs to perform {ccr} operations.
* <<ccr-post-resume-follow,Resume follower>>
* <<ccr-post-unfollow,Convert follower index to a regular index>>
* <<ccr-get-follow-stats,Get stats about follower indices>>
* <<ccr-get-follow-info,Get info about follower indices>>
[float]
[[ccr-api-auto-follow]]
@ -40,6 +41,7 @@ include::follow/post-pause-follow.asciidoc[]
include::follow/post-resume-follow.asciidoc[]
include::follow/post-unfollow.asciidoc[]
include::follow/get-follow-stats.asciidoc[]
include::follow/get-follow-info.asciidoc[]
// auto-follow
include::auto-follow/put-auto-follow-pattern.asciidoc[]

View file

@ -0,0 +1,169 @@
[role="xpack"]
[testenv="platinum"]
[[ccr-get-follow-info]]
=== Get follower info API
++++
<titleabbrev>Get follower info</titleabbrev>
++++
beta[]
Retrieves information about all follower indices.
==== Description
This API lists the parameters and the status for each follower index.
For example, the results include follower index names, leader index names,
replication options and whether the follower indices are active or paused.
==== Request
//////////////////////////
[source,js]
--------------------------------------------------
PUT /follower_index/_ccr/follow
{
"remote_cluster" : "remote_cluster",
"leader_index" : "leader_index"
}
--------------------------------------------------
// CONSOLE
// TESTSETUP
// TEST[setup:remote_cluster_and_leader_index]
[source,js]
--------------------------------------------------
POST /follower_index/_ccr/pause_follow
--------------------------------------------------
// CONSOLE
// TEARDOWN
//////////////////////////
[source,js]
--------------------------------------------------
GET /<index>/_ccr/info
--------------------------------------------------
// CONSOLE
// TEST[s/<index>/follower_index/]
==== Path Parameters
`index` ::
(string) A comma-delimited list of follower index patterns
==== Results
This API returns the following information:
`follower_indices`::
(array) An array of follower index statistics
The `indices` array consists of objects containing several fields:
`indices[].follower_index`::
(string) The name of the follower index
`indices[].remote_cluster`::
(string) The <<modules-remote-clusters,remote cluster>> that contains the
leader index
`indices[].leader_index`::
(string) The name of the index in the leader cluster that is followed
`indices[].status`::
(string) Whether index following is `active` or `paused`
`indices[].parameters`::
(object) An object that encapsulates {ccr} parameters
The `parameters` contains the following fields:
`indices[].parameters.max_read_request_operation_count`::
(integer) The maximum number of operations to pull per read from the remote
cluster
`indices[].parameters.max_outstanding_read_requests`::
(long) The maximum number of outstanding read requests from the remote cluster
`indices[].parameters.max_read_request_size`::
(<<byte-units,byte value>>) The maximum size in bytes of per read of a batch
of operations pulled from the remote cluster
`indices[].parameters.max_write_request_operation_count`::
(integer) The maximum number of operations per bulk write request executed on
the follower
`indices[].parameters.max_write_request_size`::
(<<byte-units,byte value>>) The maximum total bytes of operations per bulk
write request executed on the follower
`indices[].parameters.max_outstanding_write_requests`::
(integer) The maximum number of outstanding write requests on the follower
`indices[].parameters.max_write_buffer_count`::
(integer) The maximum number of operations that can be queued for writing.
When this limit is reached, reads from the remote cluster are deferred until
the number of queued operations goes below the limit
`indices[].parameters.max_write_buffer_size`::
(<<byte-units,byte value>>) The maximum total bytes of operations that can be
queued for writing. When this limit is reached, reads from the remote cluster
are deferred until the total bytes of queued operations goes below the limit
`indices[].parameters.max_retry_delay`::
(<<time-units,time value>>) The maximum time to wait before retrying an
operation that failed exceptionally. An exponential backoff strategy is
employed when retrying
`indices[].parameters.read_poll_timeout`::
(<<time-units,time value>>) The maximum time to wait for new operations on the
remote cluster when the follower index is synchronized with the leader index.
When the timeout has elapsed, the poll for operations returns to the follower
so that it can update some statistics, then the follower immediately attempts
to read from the leader again
==== Authorization
If the {es} {security-features} are enabled, you must have `monitor` cluster
privileges. For more information, see
{stack-ov}/security-privileges.html[Security privileges].
==== Example
This example retrieves follower info:
[source,js]
--------------------------------------------------
GET /follower_index/_ccr/info
--------------------------------------------------
// CONSOLE
The API returns the following results:
[source,js]
--------------------------------------------------
{
"follower_indices" : [
{
"follower_index" : "follower_index",
"remote_cluster" : "remote_cluster",
"leader_index" : "leader_index",
"status" : "active",
"parameters" : {
"max_read_request_operation_count" : 5120,
"max_read_request_size" : "32mb",
"max_outstanding_read_requests" : 12,
"max_write_request_operation_count" : 5120,
"max_write_request_size" : "9223372036854775807b",
"max_outstanding_write_requests" : 9,
"max_write_buffer_count" : 2147483647,
"max_write_buffer_size" : "512mb",
"max_retry_delay" : "500ms",
"read_poll_timeout" : "1m"
}
}
]
}
--------------------------------------------------
// TESTRESPONSE