progress
On this page
Description
Returns either an updated status of the synchronization process or an error.
Request
GET /api/v1/progress
Response
The progress
endpoint returns either an updated status or an error.
Successful Response
The response object contains 2 top-level fields, success
and
progress
.
The success
field contains the status of the progress
command.
Value is true
if always true
.
If mongosync
successfully gets the status of the sync process,
all response fields are wrapped in the top-level progress
object
with the following fields:
Field | Type | Description |
---|---|---|
state | string | The current state of mongosync . For information on the
possible states, see State Descriptions. |
canCommit | boolean | If true , indicates that a commit
request will succeed. This also means that the initial sync has
completed and is applying change events. |
canWrite | boolean | If Index validation continues until the commit is complete. |
info | string | Provides extra information on the synchronization progress.
Possible
|
lagTimeSeconds | integer | Time difference in seconds between the latest event timestamp that
Due to constant no-ops on the source cluster, the time difference
is often a few seconds above zero, even if there are no real
writes on the source cluster. The time difference becomes zero
when |
totalEventsApplied | integer | The approximate number of change events this instance of
This value may not be an accurate representation of the total number of events because it is not persisted and it omits certain events from the count. |
collectionCopy | object | Estimates the total amount of data being copied from collections and the
amount that has already been copied to the destination cluster |
collectionCopy
.estimatedTotalBytes | integer | Estimated total number of bytes to be copied globally by all
|
collectionCopy
.estimatedCopiedBytes | integer | Estimated number of bytes which have been copied to the destination
cluster by this To calculate the total estimated progress as a percentage, add the value
of the The value of |
directionMapping | object | Describes the mapping direction for the synchronization, namely
the source and destination clusters. |
directionMapping
.Source | string | Source cluster. Returned in the form
<cluster name>: <host>:<port> . |
directionMapping
.Destination | string | Destination cluster. Returned in the form
<cluster name>: <host>:<port> . |
mongosyncID | string | Identifier string for the New in version 1.3. |
coordinatorID | string | Identifier string for the coordinator instance.
New in version 1.3. |
verification | document | Provides information on the phase and progress of verification checks performed by the embedded verifier. New in version 1.9. |
verification.source | document | Provides information on the phase and progress of verification checks running on the source cluster. New in version 1.9. |
verification.source. estimatedDocumentCount | integer | Estimated number of documents on the source cluster. New in version 1.9. |
verification.source. hashedDocumentCount | integer | Number of documents hashed by the verifier on the source cluster. New in version 1.9. |
verification.source. lagTimeSeconds | integer | Time in seconds after the last verification check was performed on the source cluster. New in version 1.9. |
verification.source. phase | string | Current phase of the verification process on the source cluster. New in version 1.9. |
verification.source. scannedCollectionCount | integer | Number of collections scanned by the embedded verifier on the source cluster. New in version 1.9. |
verification.source. totalCollectionCount | integer | Number of collections on the source cluster to include in
verification checks. |
verification.destination | document | Provides information on the phase and progress of verification checks running on the destination cluster. New in version 1.9. |
verification.destination. estimatedDocumentCount | integer | Estimated number of documents on the destination cluster. New in version 1.9. |
verification.destination. hashedDocumentCount | integer | Number of documents hashed by the verifier on the destination cluster. New in version 1.9. |
verification.destination. lagTimeSeconds | integer | Time in seconds since the last verification check performed on the destination cluster. New in version 1.9. |
verification.destination. phase | string | Current phase of the verification process on the destination cluster. New in version 1.9. |
verification.destination. scannedCollectionCount | integer | Number of collections scanned by the embedded verifier on the destination cluster. New in version 1.9. |
verification.destination. totalCollectionCount | integer | Number of collections on the destination cluster to include in verification checks. New in version 1.9. |
Error Response
If mongosync
encounters an error, the progress
endpoint returns
the following fields:
Field | Type | Description |
---|---|---|
success | boolean | Status of the progress command. Value is true if the
command succeeds and false if the command fails. |
error | string | Type of error. |
errorDescription | string | Detailed description of the error. |
Behavior
When
mongosync
is in theIDLE
state, all output fields exceptstate
andcanCommit
arenull
.When
mongosync
is in thePAUSED
state, thelagTimeSeconds
field isnull
.The endpoint does not auto-refresh. To get updated status, call the
progress
endpoint again.Calls to
/progress
beforemongosync
reaches the collection copy phase return 0 forestimatedCopiedBytes
and 1 forestimatedTotalBytes
.estimatedTotalBytes
may change throughout the collection copy phase if documents are inserted or deleted on the source cluster.estimatedCopiedBytes
is never greater thanestimatedTotalBytes
. Progress reaches 100% at the end of the collection copy phase (estimatedCopiedBytes
=estimatedTotalBytes
).When performing a live upgrade from an earlier version to 1.8.0 or higher, the collection copy data starts over from
[0 bytes copied / 1 bytes total]
. After a live upgrade,/progress
only reports the progress of data copied after the upgrade completed.Note
Starting in
mongosync
1.7.3,mongosync
can take at least two minutes to respond when you resume or restart a sync operation. During this time, any calls to theprogress
endpoint might fail. If aprogress
call fails, it is safe to retry.
Endpoint Protection
mongosync
does not protect the progress
endpoint. However, by default
the API binds to localhost only and does not accept calls from other sources.
Additionally, the progress
call does not expose connection credentials
or user data.
Example
The following example returns the status of the synchronization process.
Request
curl localhost:27182/api/v1/progress -XGET
Response
{ "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" }, "verification": { "source": { "estimatedDocumentCount": 42, "hashedDocumentCount": 42, "lagTimeSeconds": 2, "totalCollectionCount": 42, "scannedCollectionCount": 10, "phase": "stream hashing" }, "destination": { "estimatedDocumentCount": 42, "hashedDocumentCount": 42, "lagTimeSeconds": 2, "totalCollectionCount": 42, "scannedCollectionCount": 10, "phase": "stream hashing" } } }, "success": true }