Skip to content

Commit

Permalink
Cat API: Add node name to _cat/recovery
Browse files Browse the repository at this point in the history
Add source_node and target_node fields to the recovery cat API. Also fixed and updated the documentation which was not complete concerning fields names.

Closes elastic#8041
  • Loading branch information
tlrx committed Oct 27, 2014
1 parent baa1e02 commit e1c75ba
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 29 deletions.
53 changes: 24 additions & 29 deletions docs/reference/cat/recovery.asciidoc
Expand Up @@ -13,13 +13,13 @@ As an example, here is what the recovery state of a cluster may look like when t
are no shards in transit from one node to another:

[source,shell]
----------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------
> curl -XGET 'localhost:9200/_cat/recovery?v'
index shard time type stage source target files percent bytes percent
wiki 0 73 gateway done hostA hostA 36 100.0% 24982806 100.0%
wiki 1 245 gateway done hostA hostA 33 100.0% 24501912 100.0%
wiki 2 230 gateway done hostA hostA 36 100.0% 30267222 100.0%
---------------------------------------------------------------------------
index shard time type stage source_host source_node target_host target_node repository snapshot files files_percent bytes bytes_percent
wiki 0 73 gateway done hostA Athena hostA Athena n/a n/a 36 100.0% 24982806 100.0%
wiki 1 245 gateway done hostA Athena hostA Athena n/a n/a 33 100.0% 24501912 100.0%
wiki 2 230 gateway done hostA Athena hostA Athena n/a n/a 36 100.0% 30267222 100.0%
-----------------------------------------------------------------------------------------------------------------------------------------------

In the above case, the source and target nodes are the same because the recovery
type was gateway, i.e. they were read from local storage on node start.
Expand All @@ -29,19 +29,19 @@ of our index and bringing another node online to host the replicas, we can see
what a live shard recovery looks like.

[source,shell]
----------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------
> curl -XPUT 'localhost:9200/wiki/_settings' -d'{"number_of_replicas":1}'
{"acknowledged":true}
> curl -XGET 'localhost:9200/_cat/recovery?v'
index shard time type stage source target files percent bytes percent
wiki 0 1252 gateway done hostA hostA 4 100.0% 23638870 100.0%
wiki 0 1672 replica index hostA hostB 4 75.0% 23638870 48.8%
wiki 1 1698 replica index hostA hostB 4 75.0% 23348540 49.4%
wiki 1 4812 gateway done hostA hostA 33 100.0% 24501912 100.0%
wiki 2 1689 replica index hostA hostB 4 75.0% 28681851 40.2%
wiki 2 5317 gateway done hostA hostA 36 100.0% 30267222 100.0%
----------------------------------------------------------------------------
> curl -XGET 'localhost:9200/_cat/recovery?v'
index shard time type stage source_host source_node target_host target_node repository snapshot files files_percent bytes bytes_percent
wiki 0 1252 gateway done hostA Athena hostA Athena n/a n/a 4 100.0% 23638870 100.0%
wiki 0 1672 replica index hostA Athena hostB Boneyard n/a n/a 4 75.0% 23638870 48.8%
wiki 1 1698 replica index hostA Athena hostB Boneyard n/a n/a 4 75.0% 23348540 49.4%
wiki 1 4812 gateway done hostA Athena hostA Athena n/a n/a 33 100.0% 24501912 100.0%
wiki 2 1689 replica index hostA Athena hostB Boneyard n/a n/a 4 75.0% 28681851 40.2%
wiki 2 5317 gateway done hostA Athena hostA Athena n/a n/a 36 100.0% 30267222 100.0%
-----------------------------------------------------------------------------------------------------------------------------------------------

We can see in the above listing that our 3 initial shards are in various stages
of being replicated from one node to another. Notice that the recovery type is
Expand All @@ -52,19 +52,14 @@ made a backup of my index, I can restore it using the <<modules-snapshots,snapsh
API.

[source,shell]
--------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------
> curl -XPOST 'localhost:9200/_snapshot/imdb/snapshot_2/_restore'
{"acknowledged":true}
> curl -XGET 'localhost:9200/_cat/recovery?v'
index shard time type stage repository snapshot files percent bytes percent
imdb 0 1978 snapshot done imdb snap_1 79 8.0% 12086 9.0%
imdb 1 2790 snapshot index imdb snap_1 88 7.7% 11025 8.1%
imdb 2 2790 snapshot index imdb snap_1 85 0.0% 12072 0.0%
imdb 3 2796 snapshot index imdb snap_1 85 2.4% 12048 7.2%
imdb 4 819 snapshot init imdb snap_1 0 0.0% 0 0.0%
--------------------------------------------------------------------------------





index shard time type stage source_host source_node target_host target_node repository snapshot files files_percent bytes bytes_percent
imdb 0 1978 snapshot done n/a n/a hostA Athena imdb snap_1 79 8.0% 12086 9.0%
imdb 1 2790 snapshot index n/a n/a hostA Athena imdb snap_1 88 7.7% 11025 8.1%
imdb 2 2790 snapshot index n/a n/a hostA Athena imdb snap_1 85 0.0% 12072 0.0%
imdb 3 2796 snapshot index n/a n/a hostA Athena imdb snap_1 85 2.4% 12048 7.2%
imdb 4 819 snapshot init n/a n/a hostA Athena imdb snap_1 0 0.0% 0 0.0%
-----------------------------------------------------------------------------------------------------------------------------------------------
2 changes: 2 additions & 0 deletions rest-api-spec/test/cat.recovery/10_basic.yaml
Expand Up @@ -31,7 +31,9 @@
(gateway|replica|snapshot|relocating) \s+ # type
(init|index|start|translog|finalize|done) \s+ # stage
[-\w./]+ \s+ # source_host
[-\w./]+ \s+ # source_node
[-\w./]+ \s+ # target_host
[-\w./]+ \s+ # target_node
[-\w./]+ \s+ # repository
[-\w./]+ \s+ # snapshot
\d+ \s+ # files
Expand Down
Expand Up @@ -86,7 +86,9 @@ Table getTableWithHeader(RestRequest request) {
.addCell("type", "alias:ty;desc:recovery type")
.addCell("stage", "alias:st;desc:recovery stage")
.addCell("source_host", "alias:shost;desc:source host")
.addCell("source_node", "alias:snode;desc:source node name")
.addCell("target_host", "alias:thost;desc:target host")
.addCell("target_node", "alias:tnode;desc:target node name")
.addCell("repository", "alias:rep;desc:repository")
.addCell("snapshot", "alias:snap;desc:snapshot")
.addCell("files", "alias:f;desc:number of files")
Expand Down Expand Up @@ -142,7 +144,9 @@ public int compare(ShardRecoveryResponse o1, ShardRecoveryResponse o2) {
t.addCell(state.getType().toString().toLowerCase(Locale.ROOT));
t.addCell(state.getStage().toString().toLowerCase(Locale.ROOT));
t.addCell(state.getSourceNode() == null ? "n/a" : state.getSourceNode().getHostName());
t.addCell(state.getSourceNode() == null ? "n/a" : state.getSourceNode().getName());
t.addCell(state.getTargetNode().getHostName());
t.addCell(state.getTargetNode().getName());
t.addCell(state.getRestoreSource() == null ? "n/a" : state.getRestoreSource().snapshotId().getRepository());
t.addCell(state.getRestoreSource() == null ? "n/a" : state.getRestoreSource().snapshotId().getSnapshot());
t.addCell(state.getIndex().totalFileCount());
Expand Down

0 comments on commit e1c75ba

Please sign in to comment.