Link Search Menu Expand Document Documentation Menu

CAT segment replication

Introduced 2.7

The CAT segment replication operation returns information about active and last completed segment replication events on each replica shard, including related shard-level metrics. These metrics provide information about how far behind the primary shard the replicas are lagging.

Call the CAT Segment Replication API only on indexes with segment replication enabled.

Endpoints

GET /_cat/segment_replication
GET /_cat/segment_replication/<index>

Path parameters

Parameter Type Description
index String The name of the index, or a comma-separated list or wildcard expression of index names used to filter results. If this parameter is not provided, the response contains information about all indexes in the cluster.

Query parameters

Parameter Data type Description
active_only Boolean If true, the response only includes active segment replications. Defaults to false.
detailed String If true, the response includes additional metrics for each stage of a segment replication event. Defaults to false.
shards String A comma-separated list of shards to display.
bytes Byte units Units used to display byte size values.
format String A short version of the HTTP accept header. Valid values include JSON and YAML.
h String A comma-separated list of column names to display.
help Boolean If true, the response includes help information. Defaults to false.
time Time units Units used to display time values.
v Boolean If true, the response includes column headings. Defaults to false.
s String Specifies to sort the results. For example, s=shardId:desc sorts by shardId in descending order.

Example requests

The following examples illustrate various segment replication responses.

No active segment replication events

The following query requests segment replication metrics with column headings for all indexes:

GET /_cat/segment_replication?v=true

The response contains the metrics for the preceding request:

shardId target_node target_host checkpoints_behind bytes_behind current_lag last_completed_lag rejected_requests
[index-1][0] runTask-1 127.0.0.1 0 0b 0s 7ms 0

Shard ID specified

The following query requests segment replication metrics with column headings for shards with the ID 0 from indexes index1 and index2:

GET /_cat/segment_replication/index1,index2?v=true&shards=0

The response contains the metrics for the preceding request. The column headings correspond to the metric names:

shardId target_node target_host checkpoints_behind bytes_behind current_lag last_completed_lag rejected_requests
[index-1][0] runTask-1 127.0.0.1 0 0b 0s 3ms 0
[index-2][0] runTask-1 127.0.0.1 0 0b 0s 5ms 0

Detailed response

The following query requests detailed segment replication metrics with column headings for all indexes:

GET /_cat/segment_replication?v=true&detailed=true

The response contains additional metrics about the files and stages of a segment replication event:

shardId target_node target_host checkpoints_behind bytes_behind current_lag last_completed_lag rejected_requests stage time files_fetched files_percent bytes_fetched bytes_percent start_time stop_time files files_total bytes bytes_total replicating_stage_time_taken get_checkpoint_info_stage_time_taken file_diff_stage_time_taken get_files_stage_time_taken finalize_replication_stage_time_taken
[index-1][0] runTask-1 127.0.0.1 0 0b 0s 3ms 0 done 10ms 6 100.0% 4753 100.0% 2023-03-16T13:46:16.802Z 2023-03-16T13:46:16.812Z 6 6 4.6kb 4.6kb 0s 2ms 0s 3ms 3ms
[index-2][0] runTask-1 127.0.0.1 0 0b 0s 5ms 0 done 7ms 3 100.0% 3664 100.0% 2023-03-16T13:53:33.466Z 2023-03-16T13:53:33.474Z 3 3 3.5kb 3.5kb 0s 1ms 0s 2ms 2ms

Sorting the results

The following query requests segment replication metrics with column headings for all indexes, sorted by shard ID in descending order:

GET /_cat/segment_replication?v&s=shardId:desc

The response contains the sorted results:

shardId    target_node  target_host checkpoints_behind bytes_behind current_lag last_completed_lag rejected_requests
[test6][1] runTask-2   127.0.0.1   0                  0b           0s          5ms                0
[test6][0] runTask-2   127.0.0.1   0                  0b           0s          4ms                0

Using a metric alias

In a request, you can either use a metric’s full name or one of its aliases. The following query is the same as the preceding query, but it uses the alias s instead of shardID for sorting:

GET /_cat/segment_replication?v&s=s:desc

Example response metrics

The following table lists the response metrics that are returned for all requests. When referring to a metric in a query parameter, you can provide either the metric’s full name or any of its aliases, as shown in the previous example.

Metric Alias Description
shardId s The ID of a specific shard.
target_host thost The target host IP address.
target_node tnode The target node name.
checkpoints_behind cpb The number of checkpoints by which the replica shard is behind the primary shard.
bytes_behind bb The number of bytes by which the replica shard is behind the primary shard.
current_lag clag The time elapsed while waiting for a replica shard to catch up to the primary shard.
last_completed_lag lcl The time taken for a replica shard to catch up to the latest primary shard refresh.
rejected_requests rr The number of rejected requests for the replication group.

Additional detailed response metrics

The following table lists the additional response fields returned if detailed is set to true.

Metric Alias Description
stage st The current stage of a segment replication event.
time t, ti The amount of time a segment replication event took to complete, in milliseconds.
files_fetched ff The number of files fetched so far for a segment replication event.
files_percent fp The percentage of files fetched so far for a segment replication event.
bytes_fetched bf The number of bytes fetched so far for a segment replication event.
bytes_percent bp The number of bytes fetched so far for a segment replication event as a percentage.
start_time start The segment replication start time.
stop_time stop The segment replication stop time.
files f The number of files that needs to be fetched for a segment replication event.
files_total tf The total number of files that are part of this recovery, including both reused and recovered files.
bytes b The number of bytes that needs to be fetched for a segment replication event.
bytes_total tb The total number of bytes in the shard.
replicating_stage_time_taken rstt The amount of time the replicating stage of a segment replication event took to complete.
get_checkpoint_info_stage_time_taken gcistt The amount of time the get checkpoint info stage of a segment replication event took to complete.
file_diff_stage_time_taken fdstt The amount of time the file diff stage of a segment replication event took to complete.
get_files_stage_time_taken gfstt The amount of time the get files stage of a segment replication event took to complete.
finalize_replication_stage_time_taken frstt The amount of time the finalize replication stage of a segment replication event took to complete.