Descripción
Devuelve el estado actualizado del proceso de sincronización o un error.
Solicitud
GET /api/v1/progress
Respuesta
El endpoint progress devuelve un estado actualizado o un error.
Respuesta exitosa
El objeto de respuesta contiene 2 campos de nivel superior, success y progress.
El campo success contiene el estado del comando progress. El valor es true si el comando se ejecuta correctamente y false si falla.
Si mongosync obtiene exitosamente el estado del proceso de sincronización, todos los campos de respuesta se envuelven en el objeto de nivel superior progress con los siguientes campos:
Campo | Tipo | Descripción |
|---|---|---|
| string | El estado actual de |
| booleano | Si
Si estableces buildIndexes en |
| booleano | Si La validación del índice continúa hasta que se complete el commit. |
| string | Proporciona información adicional sobre el progreso de la sincronización. Los posibles valores
|
| entero | Diferencia de tiempo en segundos entre la marca de tiempo del último evento que
Debido a constantes operaciones nulas en el clúster de origen, la diferencia de tiempo suele ser de unos segundos sobre cero, incluso si no hay guardados reales en el clúster de origen. La diferencia de tiempo se vuelve cero cuando Con la introducción del verificador embebido en la versión 1.9, hay tres campos distintos de
Cuando la verificación incorporada está deshabilitada, |
| entero | La cantidad aproximada de eventos de cambio que esta instancia de Este valor puede no representar con precisión el número total de eventos porque no se conserva y omite ciertos eventos del recuento. |
| Objeto | Estima la cantidad total de datos que se están copiando de las colecciones y la cantidad que ya se ha copiado al clúster de destino |
| entero | Número total estimado de bytes que se copiarán globalmente por todas las instancias
|
| entero | Número estimado de bytes que han sido copiados al clúster de destino por esta instancia de Para calcular el progreso estimado total como un porcentaje, suma el valor del campo El valor de |
| entero | Proporciona la última latencia de ping conocida, en milisegundos, desde Novedad en la versión 1.17. |
| Objeto | Describe la dirección de mapeo para la sincronización, es decir, los clústeres de origen y destino. |
| string | Clúster de origen. Se devuelve en el formato |
| string | Clúster de destino. Devuelto en la forma |
| entero | Tiempo estimado restante, en segundos, en la fase de Solicitud de aplicación de cambio (CEA), basándose en cuánto se ha reducido
Nuevo en la versión 1.14. |
| string | string de identificación de la instancia Nueva en la versión 1.3. |
| string | string de identificador para la instancia del coordinador.
Nueva en la versión 1.3. |
| entero | Proporciona la última latencia de ping conocida, en milisegundos, desde Novedad en la versión 1.17. |
| Documento | Proporciona información sobre la fase y el progreso de las comprobaciones de verificación realizadas por el verificador integrado. Nuevo en la versión 1.9. |
| Documento | Proporciona información sobre la fase y el progreso de las comprobaciones de verificación que se ejecutan en el clúster de origen. Nuevo en la versión 1.9. |
| entero | Número estimado de documentos en el clúster de origen. Nuevo en la versión 1.9. |
| entero | Número de documentos encriptados por el verificador en el clúster de origen. Nuevo en la versión 1.9. |
| entero | Tiempo en segundos transcurrido desde que se realizó la última verificación en el clúster de origen. Nuevo en la versión 1.9. |
| string | Fase actual del proceso de verificación en el cluster de origen. Esto puede ser uno de tres valores:
Si el verificador necesita volver a escanear una colección, puede volver a la fase Nuevo en la versión 1.9. |
| entero | Número de colecciones escaneadas por el verificador integrado en el clúster de origen. Nuevo en la versión 1.9. |
| entero | Número de colecciones en el clúster de origen para incluir en las comprobaciones de verificación. |
| Documento | Proporciona información sobre la fase y el progreso de las comprobaciones de verificación que se ejecutan en el clúster de destino. Nuevo en la versión 1.9. |
| entero | Número estimado de documentos en el clúster de destino. Nuevo en la versión 1.9. |
| entero | Cantidad de documentos encriptados por el verificador en el clúster de destino. Nuevo en la versión 1.9. |
| entero | Tiempo en segundos desde la última comprobación de verificación realizada en el clúster de destino. Nuevo en la versión 1.9. |
| string | Fase actual del proceso de verificación en el clúster de destino. Esto puede ser uno de tres valores:
Si el verificador necesita volver a escanear una colección, puede volver a la fase Nuevo en la versión 1.9. |
| entero | Número de escaneos de colección por el verificador incorporado en el clúster de destino. Nuevo en la versión 1.9. |
| entero | Número de colecciones en el clúster de destino para incluir en las comprobaciones de verificación. Nuevo en la versión 1.9. |
Respuesta de error
Si mongosync encuentra un error, el punto final progress devuelve los siguientes campos:
Campo | Tipo | Descripción |
|---|---|---|
| booleano | El estado del comando |
| string | Tipo de error. |
| string | Descripción detallada del error. |
Comportamiento
Cuando
mongosyncestá en el estadoIDLE, todos los campos de salida, exceptostateycanCommit, estánnull.Cuando
mongosyncestá en el estadoPAUSED, el campolagTimeSecondsesnull.El endpoint no se actualiza automáticamente. Para obtener el estado actualizado, llama nuevamente al endpoint
progress.Las llamadas a
/progressantes de quemongosyncllegue a la fase de copia de colección devuelven 0 paraestimatedCopiedBytesy 1 paraestimatedTotalBytes.estimatedTotalBytespuede cambiar durante la fase de copia de colección si se insertan o borran documentos en el clúster de origen.estimatedCopiedBytesnunca es mayor queestimatedTotalBytes. El progreso alcanza el 100% al final de la fase de copia de la colección (estimatedCopiedBytes=estimatedTotalBytes).
Protección de endpoints
mongosync no protege el punto de conexión progress. Sin embargo, por defecto, la API se vincula únicamente a localhost y no acepta llamadas de otras fuentes. Además, la llamada progress no expone credenciales de conexión ni datos de usuario.
Ejemplo
El siguiente ejemplo devuelve el estado del proceso de sincronización.
Solicitud
curl localhost:27182/api/v1/progress -XGET
Respuesta
{ "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" }, "source": { "pingLatencyMs":250 }, "destination": { "pingLatencyMs":-1 }, "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 }