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 tiene éxito y false si el comando falla.
Si mongosync obtiene correctamente el estado del proceso de sincronización, todos los campos de respuesta se incluyen en el objeto progress de nivel superior con los siguientes campos:
Campo | Tipo | Descripción | ||||
|---|---|---|---|---|---|---|
| string | El estado actual de | ||||
| booleano |
Si estableces buildIndexes en Cambiado en la 1.21 versión: | ||||
| booleano | Si La validación del índice continúa hasta que se complete el commit. | ||||
| Objeto | Muestra el progreso en tiempo real de las creaciones de índices en el clúster de destino si se configura IMPORTANTE: debido a que | ||||
| entero | El número de índices que | ||||
| entero | El número total de índices que | ||||
| entero | El número de colecciones para las que | ||||
| entero | El número total de colecciones para las que | ||||
| string | Ofrece información adicional sobre el progreso de la sincronización. Los posibles valores de
| ||||
| Objeto | Informes de retraso de sincronización desglosados por componente. El objeto Nuevo en la versión 1.21. | ||||
| entero | Diferencia de tiempo en segundos entre la última marca de tiempo del evento Nuevo en la versión 1.21. | ||||
| entero | Componente CRUD del retraso de sincronización en segundos. Este campo es Nuevo en la versión 1.21. | ||||
| entero | Componente DDL del retraso de sincronización en segundos. Este campo es Nuevo en la versión 1.21. | ||||
| entero | Obsoleto en mongosync.1.21 Use en 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 A partir de la versión 1.9, | ||||
| 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 mediante todas las instancias de
| ||||
| entero | Número estimado de bytes copiados al clúster de destino por esta instancia Para calcular el progreso total estimado como porcentaje:
Ambos valores son estimaciones basadas en el mejor esfuerzo posible y pueden no reflejar con exactitud el progreso real de la migración. | ||||
| 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. Devuelto en el formulario | ||||
| string | Clúster de destino. Devuelto en la forma | ||||
| string | Muestra la estimación del tiempo de oplog disponible en el clúster de origen. Los valores posibles incluyen una duración (por ejemplo,
IMPORTANTE: Si aumenta el tamaño de oplog en el clúster de origen,
Nuevo en la versión 1.19. | ||||
| 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 escaneos de colección realizados 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. | ||||
| Arreglo de cadenas | Mensajes de advertencia que Si el tiempo estimado de operación del log (oplog) restante es muy bajo, Para más detalles, consulta Dimensionamiento del oplog. Si Nuevo en la versión 1.19. |
Respuesta de error
Si mongosync encuentra un error, el endpoint 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 objetolagesnully el campolagTimeSecondsobsoleto esnull.Cuando
mongosyncse encuentra en el estadoINITIALIZING,mongosyncrechaza las solicitudes de/start. Una vez que la inicialización se complete,mongosyncdevuelveIDLEy admite solicitudes/start.Si
mongosyncse reanuda o reinicia después de un bloqueo, una vez completada la inicialización, la respuesta de/progressdevuelve elstateque había antes del bloqueo.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 la recolección retornan 0 paraestimatedCopiedBytesy 1 paraestimatedTotalBytes.Durante la copia de la colección,
estimatedTotalBytessolo cambia siestimatedCopiedByteslo supera. En ese caso,mongosyncelevaestimatedTotalBytespara que sea igual aestimatedCopiedBytes.Al final de la copia de la colección,
estimatedTotalByteses igual aestimatedCopiedBytes.mongosyncutiliza el total de bytes copiados como fuente de verdad. Ambos valores son estimaciones aproximadas.
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", "lag": { "overallLagSeconds": 0, "crudLagSeconds": 0, "ddlLagSeconds": null }, "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 }