progress
説明
同期プロセスの更新されたステータスまたはエラーを返します。
リクエスト
GET /api/v1/progress
応答
progress
エンドポイントは更新されたステータスまたはエラーのいずれかを返します。
正常な応答
応答オブジェクトには、 2の最上位フィールド、 success
とprogress
が含まれています。
success
フィールドには、 progress
コマンドのステータスが含まれます。 常にtrue
の場合、値はtrue
です。
mongosync
が同期プロセスのステータスを正常に取得すると、すべての応答フィールドは次のフィールドを持つ最上位のprogress
オブジェクトにラップされます。
フィールド | タイプ | 説明 |
---|---|---|
state | string | mongosync の現在の状態。 利用可能な状態の詳細については、「 状態の説明 」を参照してください。 |
canCommit | ブール値 | true の場合、コミットリクエストが成功することを示します。 これは、最初の同期が完了し、変更イベントが適用されていることも意味します。 |
canWrite | ブール値 |
インデックスの検証は、コミットが完了するまで続きます。 |
info | string | 同期の進行状況に関する追加情報を提供します。 可能な
|
lagTimeSeconds | integer |
ソースクラスターでは継続的な何も操作が行われないため、ソースクラスターで実際に書込み (write) が行われていない場合でも、時間差は 0 数秒を超えることが多いです。 |
totalEventsApplied | integer |
この値は永続化されず、カウントから特定のイベントが省略されるため、イベントの総数を正確に表さない可能性があります。 |
collectionCopy | オブジェクト | コレクションからコピーされるデータの合計量と、宛先クラスターにすでにコピーされたデータ量を見積もります |
collectionCopy
.estimatedTotalBytes | integer | コレクションの初期コピー中にすべての
|
collectionCopy
.estimatedCopiedBytes | integer | コレクションの初期コピー中にこの 推定される進行状況の合計をパーセンテージとして計算するには、各 操作の再試行により、 |
directionMapping | オブジェクト | 同期のマッピング方向(ソースクラスターと宛先クラスター)を説明します。 |
directionMapping
.Source | string | ソースクラスター。 <cluster name>: <host>:<port> の形式で返されます。 |
directionMapping
.Destination | string | 宛先クラスター。 <cluster name>: <host>:<port> の形式で返されます。 |
mongosyncID | string |
バージョン 1.3 で追加。 |
coordinatorID | string | コーディネーター インスタンスの識別子 string。
バージョン 1.3 で追加。 |
エラー応答
mongosync
でエラーが発生した場合、 progress
エンドポイントは次のフィールドを返します。
フィールド | タイプ | 説明 |
---|---|---|
success | ブール値 | progress コマンドのステータス。 値は、コマンドが成功した場合はtrue で、コマンドが失敗した場合はfalse です。 |
error | string | エラーのタイプ。 |
errorDescription | string | エラーの詳細な説明。 |
動作
mongosync
がIDLE
状態にある場合、state
とcanCommit
を除くすべての出力フィールドはnull
になります。mongosync
がPAUSED
状態にある場合、lagTimeSeconds
フィールドはnull
です。エンドポイントは自動更新されません。 更新されたステータスを取得するには、
progress
エンドポイントを再度呼び出します。mongosync
がコレクション コピー フェーズに達する前に/progress
を呼び出すと、estimatedCopiedBytes
には0が、estimatedTotalBytes
には1が返されます。estimatedTotalBytes
ソースクラスターでドキュメントが挿入または削除された場合、コレクションのコピーフェーズ中に変更される可能性があります。estimatedCopiedBytes
はestimatedTotalBytes
より大きくはありません。 コレクション コピー フェーズの終了時に進行状況が100 % に達しました(estimatedCopiedBytes
=estimatedTotalBytes
)。以前のバージョンから1.8.0以降へのライブ アップグレードを実行する場合、コレクションのコピー データは
[0 bytes copied / 1 bytes total]
から開始されます。 ライブ アップグレード後、/progress
はアップグレード完了後にコピーされたデータの進行状況のみを報告します。注意
mongosync
1.7.3以降、 同期操作を再開または再開する際に、mongosync
が応答するまでに少なくとも 2 分かかる場合があります。 この間、progress
エンドポイントへの呼び出しが失敗する可能性があります。progress
呼び出しが失敗した場合は、安全に再試行できます。
エンドポイント保護
mongosync
は、 progress
エンドポイントを保護しません。 ただし、デフォルトでは、API は localhost のみにバインドされ、他のソースからの呼び出しは受け入れません。 さらに、 progress
呼び出しでは接続認証情報やユーザー データは公開されません。
例
次の例では、同期プロセスのステータスを返します。
リクエスト
curl localhost:27182/api/v1/progress -XGET
応答
{ "progress": { "state":"RUNNING", "canCommit":true, "canWrite":false, "info":"change event application", "lagTimeSeconds":0, "collectionCopy": { "estimatedTotalBytes":694, "estimatedCopiedBytes":694 }, "directionMapping": { "Source":"cluster0: localhost:27017", "Destination":"cluster1: localhost:27018" } }, "success": true }