スナップショットステータスAPI

スナップショットに参加している各シャードの現在の状態の詳細な説明を取得します。このAPIは、進行中のスナップショットに対する詳細なシャードレベルの情報を取得するためのものであることに注意してください。この詳細が必要ない場合、または1つ以上の既存のスナップショットに関する情報を取得したい場合は、スナップショット取得APIを使用してください。

Python

  1. resp = client.snapshot.status()
  2. print(resp)

Ruby

  1. response = client.snapshot.status
  2. puts response

Js

  1. const response = await client.snapshot.status();
  2. console.log(response);

コンソール

  1. GET _snapshot/_status

リクエスト

GET _snapshot/_status

GET _snapshot/<repository>/_status

GET _snapshot/<repository>/<snapshot>/_status

前提条件

  • Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するには、monitor_snapshotcreate_snapshot、またはmanage クラスター権限が必要です。

説明

スナップショットに参加しているシャードに関する詳細情報を取得するには、スナップショットステータスAPIを使用します。

  1. 必要に応じて、`````<repository>`````および`````<snapshot>`````を指定して、現在実行中でない特定のスナップショットに関する情報を取得できます。
  2. 現在実行中のスナップショット以外のスナップショットのステータスを返すためにAPIを使用することは高コストになる可能性があります。APIは、各スナップショットの各シャードに対してリポジトリからの読み取りを必要とします。たとえば、100のスナップショットがそれぞれ1,000のシャードを持っている場合、すべてのスナップショットを含むAPIリクエストは100,000回の読み取りを必要とします(100スナップショット * 1,000シャード)。
  3. ストレージのレイテンシに応じて、そのようなリクエストは結果を返すのに非常に長い時間がかかることがあります。これらのリクエストはマシンリソースにも負担をかけ、クラウドストレージを使用する場合は高い処理コストが発生する可能性があります。
  4. ## パスパラメータ
  5. - `````<repository>
  • (オプション、文字列) リクエストを制限するために使用されるスナップショットリポジトリ名。<snapshot>が指定されていない場合、ワイルドカード(*)をサポートします。
  • <snapshot>
  • (オプション、文字列) ステータスを取得するスナップショットのカンマ区切りリスト。デフォルトは現在実行中のスナップショットです。ワイルドカード(*)はサポートされていません。

クエリパラメータ

  • master_timeout
  • (オプション、時間単位) マスターノードを待機する期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーを返します。デフォルトは30sです。リクエストが決してタイムアウトしないことを示すために-1に設定することもできます。
  • ignore_unavailable
  • (オプション、ブール値) falseの場合、リクエストは利用できないスナップショットに対してエラーを返します。デフォルトはfalseです。
    trueの場合、リクエストは破損しているか一時的に返せないスナップショットなど、利用できないスナップショットを無視します。

レスポンスボディ

  • repository
  • (文字列) スナップショットを含むリポジトリの名前。
  • snapshot
  • (文字列) スナップショットの名前。
  • uuid
  • (文字列) スナップショットのユニバーサルユニーク識別子(UUID)。
  • state
  • (文字列) 現在のスナップショットの状態を示します。
    1. - `````FAILED
    • スナップショットがエラーで終了し、データを保存できませんでした。
    • STARTED
    • スナップショットが現在実行中です。
    • SUCCESS
    • スナップショットが完了しました。
  • include_global_state
  • (ブール値) 現在のクラスター状態がスナップショットに含まれているかどうかを示します。

  • shards_stats
  • (オブジェクト) スナップショット内のシャードのカウントを含みます。

    1. - `````initializing
    • (整数) まだ初期化中のシャードの数。
    • started
    • (整数) 開始されたが最終化されていないシャードの数。
    • finalizing
    • (整数) 最終化中だが完了していないシャードの数。
    • done
    • (整数) 初期化、開始、最終化が成功したシャードの数。
    • failed
    • (整数) スナップショットに含まれることに失敗したシャードの数。
    • total
    • (整数) スナップショットに含まれるシャードの総数。

  • stats
  • (オブジェクト) スナップショットに含まれるファイルの数(file_count)とサイズ(size_in_bytes)の詳細を提供します。
    1. - `````incremental
    • (オブジェクト) 増分スナップショットの一部としてまだコピーする必要があるファイルの数とサイズ。
      完了したスナップショットの場合、このプロパティはリポジトリにまだ存在しないファイルの数とサイズを示します。
    • processed
    • (オブジェクト) スナップショットにすでにアップロードされたファイルの数とサイズ。ファイルがアップロードされると、処理されたfile_countおよびsize_in_bytesstatsでインクリメントされます。
    • total
    • (オブジェクト) スナップショットによって参照されるファイルの総数とサイズ。
    • start_time_in_millis
    • (長整数) スナップショット作成プロセスが開始された時刻(ミリ秒単位)。
    • time_in_millis
    • (長整数) スナップショットプロセスが完了するのにかかった総時間(ミリ秒単位)。
  • <index>
  • (オブジェクトのリスト) スナップショットに含まれるインデックスに関する情報を含むオブジェクトのリスト。
    1. - `````shards_stats
    • (オブジェクト) shards_statsを参照してください。
    • stats
    • (オブジェクト) statsを参照してください。
    • shards
    • (オブジェクトのリスト) スナップショットを含むシャードに関する情報を含むオブジェクトのリスト。
      1. - `````stage
      • (文字列) スナップショットを含むシャードの現在の状態を示します。
        stageのプロパティ
      • DONE
      • リポジトリに正常に保存されたスナップショット内のシャードの数。
      • FAILURE
      • リポジトリに正常に保存されなかったスナップショット内のシャードの数。
      • FINALIZE
      • リポジトリに保存される最終化段階にあるスナップショット内のシャードの数。
      • INIT
      • リポジトリに保存される初期化段階にあるスナップショット内のシャードの数。
      • STARTED
      • リポジトリに保存される開始段階にあるスナップショット内のシャードの数。
      • stats
      • (オブジェクト) statsを参照してください。
      • total
      • (オブジェクト) スナップショットによって参照されるファイルの総数とサイズ。
      • start_time_in_millis
      • (長整数) start_time_in_millisを参照してください。
      • time_in_millis
      • (長整数) time_in_millisを参照してください。

次のリクエストは、my_repositoryリポジトリ内のsnapshot_2の詳細なステータス情報を返します。このレスポンスには、シャードのステータスやファイル統計など、スナップショット取得APIを超える追加情報が含まれています。

Python

  1. resp = client.snapshot.status(
  2. repository="my_repository",
  3. snapshot="snapshot_2",
  4. )
  5. print(resp)

Ruby

  1. response = client.snapshot.status(
  2. repository: 'my_repository',
  3. snapshot: 'snapshot_2'
  4. )
  5. puts response

Js

  1. const response = await client.snapshot.status({
  2. repository: "my_repository",
  3. snapshot: "snapshot_2",
  4. });
  5. console.log(response);

コンソール

  1. GET _snapshot/my_repository/snapshot_2/_status

コンソール-結果

  1. {
  2. "snapshots" : [
  3. {
  4. "snapshot" : "snapshot_2",
  5. "repository" : "my_repository",
  6. "uuid" : "lNeQD1SvTQCqqJUMQSwmGg",
  7. "state" : "SUCCESS",
  8. "include_global_state" : false,
  9. "shards_stats" : {
  10. "initializing" : 0,
  11. "started" : 0,
  12. "finalizing" : 0,
  13. "done" : 1,
  14. "failed" : 0,
  15. "total" : 1
  16. },
  17. "stats" : {
  18. "incremental" : {
  19. "file_count" : 3,
  20. "size_in_bytes" : 5969
  21. },
  22. "total" : {
  23. "file_count" : 4,
  24. "size_in_bytes" : 6024
  25. },
  26. "start_time_in_millis" : 1594829326691,
  27. "time_in_millis" : 205
  28. },
  29. "indices" : {
  30. "index_1" : {
  31. "shards_stats" : {
  32. "initializing" : 0,
  33. "started" : 0,
  34. "finalizing" : 0,
  35. "done" : 1,
  36. "failed" : 0,
  37. "total" : 1
  38. },
  39. "stats" : {
  40. "incremental" : {
  41. "file_count" : 3,
  42. "size_in_bytes" : 5969
  43. },
  44. "total" : {
  45. "file_count" : 4,
  46. "size_in_bytes" : 6024
  47. },
  48. "start_time_in_millis" : 1594829326896,
  49. "time_in_millis" : 0
  50. },
  51. "shards" : {
  52. "0" : {
  53. "stage" : "DONE",
  54. "stats" : {
  55. "incremental" : {
  56. "file_count" : 3,
  57. "size_in_bytes" : 5969
  58. },
  59. "total" : {
  60. "file_count" : 4,
  61. "size_in_bytes" : 6024
  62. },
  63. "start_time_in_millis" : 1594829326896,
  64. "time_in_millis" : 0
  65. }
  66. }
  67. }
  68. }
  69. }
  70. }
  71. ]
  72. }