Docs Menu
Docs Home
/ /

progress

Devuelve el estado actualizado del proceso de sincronización o un error.

GET /api/v1/progress

El endpoint progress devuelve un estado actualizado o un error.

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

state

string

El estado actual de mongosync. Para obtener información sobre los estados posibles, consulta Descripciones de estado.

canCommit

booleano

trueSi, indica que una solicitud de confirmación se realizó correctamente. Esto también significa que:

  • La sincronización inicial se ha completado y se están aplicando eventos de cambio.

  • El verificador empotrado está en un estado apropiado para la confirmación.

  • El retardo para mongosync y el verificador integrado es de 30 segundos o menos.

Si estableces buildIndexes en "afterDataCopy" o "excludeHashedAfterCopy" al llamar a start, {canCommit: true} también indica que la creación de índices está completa.

Cambiado en la 1.21 versión: canCommit es false cuando mongosync o el verificador integrado informa más de 30 segundos de retraso.

canWrite

booleano

Si true, indica que se permite la escritura en el clúster de destino. No escribas en el clúster de destino mientras canWrite es false.

La validación del índice continúa hasta que se complete el commit.

indexBuilding

Objeto

Muestra el progreso en tiempo real de las creaciones de índices en el clúster de destino si se configura buildIndexes en afterDataCopy o excludeHashedAfterCopy al llamar a start. Este objeto solo se muestra durante la fase de aplicación de evento de cambio.

IMPORTANTE: debido a que mongosync crea los índices para las colecciones más grandes primero, el porcentaje de índices construidos podría no corresponder linealmente con el porcentaje de tiempo transcurrido.

indexBuilding.indexesBuilt

entero

El número de índices que mongosync ha terminado de construir.

indexBuilding.totalIndexesToBuild

entero

El número total de índices que mongosync necesita compilar, incluidos aquellos que ya ha terminado de compilar.

indexBuilding.collectionsFinished

entero

El número de colecciones para las que mongosync ha completado la creación de índices.

indexBuilding.collectionsTotal

entero

El número total de colecciones para las que mongosync necesita construir índices, incluidas las que se han completado.

info

string

Ofrece información adicional sobre el progreso de la sincronización. Los posibles valores de info incluyen:

  • "collection copy"

  • "change event application"

  • "waiting for commit to complete"

  • "commit completed"

lag

Objeto

Informes de retraso de sincronización desglosados ​​por componente. El objeto lag es null cuando mongosync está en el estado IDLE o PAUSED.

Nuevo en la versión 1.21.

lag.overallLagSeconds

entero

Diferencia de tiempo en segundos entre la última marca de tiempo del evento mongosync aplicada al clúster de destino y la última marca de tiempo en el clúster de origen. Es igual a lagTimeSeconds en todos los estados.

Nuevo en la versión 1.21.

lag.crudLagSeconds

entero

Componente CRUD del retraso de sincronización en segundos. Este campo es null cuando mongosync aún no ha establecido la marca de tiempo de origen para las operaciones CRUD.

Nuevo en la versión 1.21.

lag.ddlLagSeconds

entero

Componente DDL del retraso de sincronización en segundos. Este campo es null cuando el aplicador DDL está deshabilitado (por ejemplo, cuando la versión del servidor de origen es anterior a 6.0) o cuando aún no se ha aplicado ningún evento DDL.

Nuevo en la versión 1.21.

lagTimeSeconds

entero

Obsoleto en mongosync.1.21 Use en lag.overallLagSeconds su lugar. Este campo podría eliminarse en una versión futura.

Diferencia de tiempo en segundos entre la marca de tiempo del último evento que mongosync aplicó al clúster de destino y la última marca de tiempo en el clúster de origen para esta instancia de mongosync.

mongosync realiza guardados periódicos sin acción en el clúster de origen, lo que puede evitar que el valor del campo lagTimeSeconds llegue a cero hasta que mongosync termine la migración.

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 mongosync realiza la migración.

A partir de la versión 1.9, /progress también informa sobre el retraso del verificador. Consulte verification.source.lagTimeSeconds y verification.destination.lagTimeSeconds en esta tabla.

totalEventsApplied

entero

La cantidad aproximada de eventos de cambio que esta instancia de mongosync ha aplicado al clúster de destino.

Este valor puede no representar con precisión el número total de eventos porque no se conserva y omite ciertos eventos del recuento.

collectionCopy

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

collectionCopy .estimatedTotalBytes

entero

Número total estimado de bytes que se copiarán globalmente mediante todas las instancias de mongosync durante la copia inicial de las colecciones.

mongosync Este valor se calcula antes de que comience la copia de la colección. Durante la copia, este valor solo cambia si estimatedCopiedBytes lo supera, en cuyo caso mongosync incrementa estimatedTotalBytes para que sea igual a estimatedCopiedBytes. Una vez finalizada la copia, estimatedTotalBytes es igual a estimatedCopiedBytes. Este valor es una estimación aproximada.

collectionCopy .estimatedCopiedBytes

entero

Número estimado de bytes copiados al clúster de destino por esta instancia mongosync durante la copia inicial de colecciones.

Para calcular el progreso total estimado como porcentaje:

  1. Agregue el valor estimatedCopiedBytes para cada instancia mongosync.

  2. Divide el resultado entre estimatedTotalBytes.

  3. Multiplica el resultado por 100.

Ambos valores son estimaciones basadas en el mejor esfuerzo posible y pueden no reflejar con exactitud el progreso real de la migración.

destination. pingLatencyMs

entero

Proporciona la última latencia de ping conocida, en milisegundos, desde mongosync hasta el clúster de destino. Este campo se actualiza cada 30 segundos mientras la replicación esté en curso y se informe en la respuesta. Si la latencia es inferior a 1 milisegundos o mongosync aún no ha realizado el ping, este campo no estará presente. Este campo tiene un valor de -1 si el último intento de ping falló.

Novedad en la versión 1.17.

directionMapping

Objeto

Describe la dirección de mapeo para la sincronización, es decir, los clústeres de origen y destino.

directionMapping .Source

string

clúster de origen. Devuelto en el formulario <cluster name>: <host>:<port>.

directionMapping .Destination

string

Clúster de destino. Devuelto en la forma <cluster name>: <host>:<port>.

estimatedOplogTimeRemaining

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, "12 hours", "4 hours" o "45 minutes") y casos especiales como "more than 72 hours", "less than 15 minutes" y "not checked yet".

mongosync calcula estimatedOplogTimeRemaining como la ventana de tiempo entre la entrada de oplog más antigua disponible en el clúster de origen y la entrada de oplog más antigua que mongosync aún necesita completar con éxito. mongosync actualiza este valor cada cinco minutos.

IMPORTANTE: Si aumenta el tamaño de oplog en el clúster de origen, estimatedOplogTimeRemaining podría no aumentar inmediatamente. A medida que mongosync procesa el registro de origen oplog, la oplog window suele aumentar.

mongosync solo informa estimatedOplogTimeRemaining mientras verifica el tiempo de oplog. mongosync incluye este campo solo cuando está en el estado RUNNING y solo antes de que el endpoint /progress devuelva canWrite=true.

Nuevo en la versión 1.19.

estimatedSecondsToCEACatchup

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 lagTimeSeconds en un intervalo reciente.

/progress no informa estimatedSecondsToCEACatchup si mongosync no está en el ECA, o si lagTimeSeconds ha aumentado o se ha mantenido igual durante el intervalo más reciente. En este caso, espera 30 minutos y vuelve a intentarlo.

Nuevo en la versión 1.14.

mongosyncID

string

string de identificación de la instancia mongosync.

Nueva en la versión 1.3.

coordinatorID

string

string de identificador para la instancia del coordinador.

  • Cuando mongosync es coordinado por otra instancia, este campo muestra el string identificador de la instancia coordinadora.

  • Cuando mongosync es un coordinador o funciona solo, este campo devuelve el mismo valor que su campo mongosyncID.

  • Cuando mongosync se inicia, este campo devuelve null hasta que mongosync identifica al coordinador.

Nueva en la versión 1.3.

source. pingLatencyMs

entero

Proporciona la última latencia de ping conocida, en milisegundos, desde mongosync hasta el clúster de origen. Este campo se actualiza cada 30 segundos mientras la replicación esté en curso y se informe en la respuesta. Si la latencia es inferior a 1 milisegundos o mongosync aún no ha realizado el ping, este campo no estará presente. Este campo tiene un valor de -1 si el último intento de ping falló.

Novedad en la versión 1.17.

verification

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.

verification.source

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.

verification.source. estimatedDocumentCount

entero

Número estimado de documentos en el clúster de origen.

Nuevo en la versión 1.9.

verification.source. hashedDocumentCount

entero

Número de documentos encriptados por el verificador en el clúster de origen.

Nuevo en la versión 1.9.

verification.source. lagTimeSeconds

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.

verification.source. phase

string

Fase actual del proceso de verificación en el cluster de origen. Esto puede ser uno de tres valores:

  • "not started": El verificador no ha iniciado ningún escaneo de colección inicial para este clúster.

  • "initial hashing": El verificador está realizando su escaneo inicial para al menos una colección en el clúster.

  • "stream hashing": El verificador ha completado su análisis inicial para el clúster y ahora está siguiendo su flujo de cambios.

Si el verificador necesita volver a escanear una colección, puede volver a la fase "initial hashing" incluso si el endpoint ya informó la fase "stream hashing".

Nuevo en la versión 1.9.

verification.source. scannedCollectionCount

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.

verification.source. totalCollectionCount

entero

Número de colecciones en el clúster de origen para incluir en las comprobaciones de verificación.

verification.destination

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.

verification.destination. estimatedDocumentCount

entero

Número estimado de documentos en el clúster de destino.

Nuevo en la versión 1.9.

verification.destination. hashedDocumentCount

entero

Cantidad de documentos encriptados por el verificador en el clúster de destino.

Nuevo en la versión 1.9.

verification.destination. lagTimeSeconds

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.

verification.destination. phase

string

Fase actual del proceso de verificación en el clúster de destino. Esto puede ser uno de tres valores:

  • "not started": El verificador no ha iniciado ningún escaneo de colección inicial para este clúster.

  • "initial hashing": El verificador está realizando su escaneo inicial para al menos una colección en el clúster.

  • "stream hashing": El verificador ha completado su análisis inicial para el clúster y ahora está siguiendo su flujo de cambios.

Si el verificador necesita volver a escanear una colección, puede volver a la fase "initial hashing" incluso si el endpoint ya informó la fase "stream hashing".

Nuevo en la versión 1.9.

verification.destination. scannedCollectionCount

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.

verification.destination. totalCollectionCount

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.

warnings

Arreglo de cadenas

Mensajes de advertencia que mongosync detecta. Si mongosync no detecta ninguna advertencia, omite este campo.

Si el tiempo estimado de operación del log (oplog) restante es muy bajo, mongosync agrega una advertencia que describe el problema y enlaza a la documentación. Por ejemplo:

"warnings": [
"The amount of available oplog on the source cluster is too small for mongosync to complete successfully.
For more details, see https://www.mongodb.com/es/docs/cluster-to-cluster-sync/current/reference/oplog-sizing/."
]

Para más detalles, consulta Dimensionamiento del oplog.

Si mongosync bloquea la escritura de usuarios en el clúster de origen, mongosync añade una advertencia al campo warnings. Para obtener más información, consulta Bloqueo de escritura

Nuevo en la versión 1.19.

Si mongosync encuentra un error, el endpoint progress devuelve los siguientes campos:

Campo
Tipo
Descripción

success

booleano

El estado del comando progress. El valor es true si el comando se ejecuta correctamente y false si el comando falla.

error

string

Tipo de error.

errorDescription

string

Descripción detallada del error.

  • Cuando mongosync está en el estado IDLE, todos los campos de salida, excepto state y canCommit, están null.

  • Cuando mongosync está en el estado PAUSED, el objeto lag es null y el campo lagTimeSeconds obsoleto es null.

  • Cuando mongosync se encuentra en el estado INITIALIZING, mongosync rechaza las solicitudes de /start. Una vez que la inicialización se complete, mongosync devuelve IDLE y admite solicitudes /start.

    Si mongosync se reanuda o reinicia después de un bloqueo, una vez completada la inicialización, la respuesta de /progress devuelve el state que 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 /progress antes de que mongosync llegue a la fase de copia de la recolección retornan 0 para estimatedCopiedBytes y 1 para estimatedTotalBytes.

  • Durante la copia de la colección, estimatedTotalBytes solo cambia si estimatedCopiedBytes lo supera. En ese caso, mongosync eleva estimatedTotalBytes para que sea igual a estimatedCopiedBytes.

  • Al final de la copia de la colección, estimatedTotalBytes es igual a estimatedCopiedBytes. mongosync utiliza el total de bytes copiados como fuente de verdad. Ambos valores son estimaciones aproximadas.

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.

El siguiente ejemplo devuelve el estado del proceso de sincronización.

curl localhost:27182/api/v1/progress -XGET
{
"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
}

Volver

Inicio

En esta página