Descrição
Retorna um status atualizado do processo de sincronização ou um erro.
Solicitar
GET /api/v1/progress
Resposta
O endpoint progress retorna um status atualizado ou um erro.
Resposta bem-sucedida
O objeto de resposta contém 2 campos de nível superior, success e progress.
O campo success contém o status do comando progress. O valor é true se o comando for bem-sucedido e false se o comando falhar.
Se mongosync obter com êxito o status do processo de sincronização, todos os campos de resposta serão agrupados no objeto progress de nível superior com os seguintes campos:
Campo | Tipo | Descrição | ||||
|---|---|---|---|---|---|---|
| string | O estado atual de | ||||
| booleano | Se
Se você definir buildIndexes como Changed in version 1.21:
| ||||
| booleano | Se A validação do índice continua até que o commit seja concluído. | ||||
| objeto | Mostra o progresso em tempo real das construções de índice no cluster de destino se você definir IMPORTANTE: como | ||||
| inteiro | O número de índices que | ||||
| inteiro | O número total de índices que | ||||
| inteiro | O número de collections para as quais | ||||
| inteiro | O número total de collections para as quais o | ||||
| string | Fornece informações adicionais sobre o progresso da sincronização. Os possíveis valores de
| ||||
| string | Stage of the Change Event Application (CEA) phase. Only appears when
Use this field to interpret synchronization lag. For more information, see Change Event Application Stages. Novidades na versão 1.22. | ||||
| objeto | Relata o atraso de sincronização dividido por componente. O objeto Novidades na versão 1.21. | ||||
| inteiro | Diferença de tempo em segundos entre o carimbo de data/hora do último evento que Novidades na versão 1.21. | ||||
| inteiro | Componente CRUD do atraso de sincronização em segundos. Este campo é Novidades na versão 1.21. | ||||
| inteiro | Componente DDL do atraso de sincronização em segundos. Este campo é Novidades na versão 1.21. | ||||
| inteiro | Obsoleto no Mongosync.1.21 Use Diferença de tempo, em segundos, entre o último carimbo de data/hora do evento que
Devido às constantes no-ops no cluster de origem, a diferença de tempo geralmente é de alguns segundos acima de zero, mesmo que não haja gravações reais no cluster de origem. A diferença de tempo se torna zero quando A partir da versão 1.9, o | ||||
| inteiro | O número aproximado de eventos de alteração que esta instância de Esse valor pode não ser uma representação precisa do número total de eventos porque não é persistente e omite determinados eventos da contagem. | ||||
| objeto | Estima a quantidade total de dados que estão sendo copiados de collection e a quantidade que já foi copiada para o cluster de destino | ||||
| inteiro | Número total estimado de bytes a serem copiados globalmente por todas as instâncias
| ||||
| inteiro | Número estimado de bytes copiados para o cluster de destino por essa instância Para calcular o progresso total estimado como uma porcentagem:
Ambos os valores são estimativas de melhor esforço e podem não refletir com precisão o progresso real da migração. | ||||
| inteiro | Fornece a última latência de ping conhecida, em milissegundos, do Novidades na versão 1.17. | ||||
| objeto | Descreve a direção de mapeamento para a sincronização, ou seja, os clusters de origem e destino. | ||||
| string | cluster de origem. Retornado no formulário | ||||
| string | Cluster de destino. Retornado no formulário | ||||
| string | Mostra uma estimativa do tempo de oplog disponível no cluster de origem. Os valores possíveis incluem uma duração (por exemplo,
IMPORTANTE: se você aumentar o tamanho do oplog no cluster de origem,
Novidades na versão 1.19. | ||||
| inteiro | Tempo estimado em segundos restantes na fase de aplicação de eventos de alteração (CEA), com base em quanto
Novidades na versão 1.14. | ||||
| string | string identificador para a instância Novidades na versão 1.3. | ||||
| string | string identificador para a instância do coordenador.
Novidades na versão 1.3. | ||||
| inteiro | Fornece a última latência de ping conhecida, em milissegundos, do Novidades na versão 1.17. | ||||
| documento | Fornece informações sobre a fase e o progresso das verificações de verificação realizadas pelo verificador incorporado. Novidades na versão 1.9. | ||||
| documento | Fornece informações sobre a fase e o progresso das verificações de verificação em execução no cluster de origem. Novidades na versão 1.9. | ||||
| inteiro | Número estimado de documentos no cluster de origem. Novidades na versão 1.9. | ||||
| inteiro | Número de documentos hash pelo verificador no cluster de origem. Novidades na versão 1.9. | ||||
| inteiro | Tempo em segundos após a última verificação ser realizada no cluster de origem. Novidades na versão 1.9. | ||||
| string | Fase atual do processo de verificação no cluster de origem. Pode ser um dos três valores:
Se o verificador precisar reanalisar uma coleção, ele poderá voltar para a fase A partir de | ||||
| inteiro | Número de collections verificadas pelo verificador embarcado no cluster de origem. Novidades na versão 1.9. | ||||
| inteiro | Número de collections no cluster de origem a serem incluídas nas verificações de verificação. | ||||
| documento | Fornece informações sobre a fase e o progresso das verificações em execução no cluster de destino. Novidades na versão 1.9. | ||||
| inteiro | Número estimado de documentos no cluster de destino. Novidades na versão 1.9. | ||||
| inteiro | Número de documentos hash pelo verificador no cluster de destino. Novidades na versão 1.9. | ||||
| inteiro | Tempo em segundos desde a última verificação realizada no cluster de destino. Novidades na versão 1.9. | ||||
| string | Fase atual do processo de verificação no cluster de destino. Pode ser um dos três valores:
Se o verificador precisar reanalisar uma coleção, ele poderá voltar para a fase Starting in | ||||
| inteiro | Número de collections verificadas pelo verificador embarcado no cluster de destino. Novidades na versão 1.9. | ||||
| inteiro | Número de collections no cluster de destino a serem incluídas nas verificações de verificação. Novidades na versão 1.9. | ||||
| array de strings | Mensagens de aviso que Se o tempo restante estimado do oplog for muito baixo, o Para obter mais detalhes, consulte Dimensionamento do oplog. Se Novidades na versão 1.19. |
Resposta de erro
Se mongosync encontrar um erro, o endpoint progress retornará os seguintes campos:
Campo | Tipo | Descrição |
|---|---|---|
| booleano | Status do comando |
| string | Tipo de erro. |
| string | Descrição detalhada do erro. |
Comportamento
Quando
mongosyncestá no estadoIDLE, todos os campos de saída, excetostateecanCommit, sãonull.Quando
mongosyncestá no estadoPAUSED, o objetolagénulle o campo obsoletolagTimeSecondsénull.Quando
mongosyncestá no estadoINITIALIZING,mongosyncrejeita/startsolicitações. Após a conclusão da inicialização,mongosyncretornaIDLEe aceita/startsolicitações.Se o
mongosyncfor retomado ou reiniciado após uma falha, após a conclusão da inicialização, a resposta/progressretornará ostateantes da falha.O endpoint não é atualizado automaticamente. Para obter o status atualizado, chame o endpoint
progressnovamente.Chamadas para
/progressantesmongosyncchegar à fase de cópia da coleção retornam 0 paraestimatedCopiedBytese 1 paraestimatedTotalBytes.Durante a cópia da coleção,
estimatedTotalBytessó muda seestimatedCopiedBytesexceder. Nesse caso,mongosyncaumentaestimatedTotalBytespara igualarestimatedCopiedBytes.No final da cópia da coleção,
estimatedTotalBytesé igual aestimatedCopiedBytes.mongosyncusa o total de bytes copiados como a fonte da verdade. Ambos os valores são estimativas de melhor esforço.
Alterar estágios do aplicativo de evento
Novidades na versão 1.22.
The ceaStage field reports how far mongosync has progressed through the Change Event Application (CEA) phase. ceaStage can help you interpret mongosync lag.
During "collection copy drain", mongosync applies change events accumulated during collection copy. Because collection copy might have already copied a document whose insert remains queued in the backlog, replaying that insert can produce an expected duplicate key error. Handling these errors can temporarily reduce CEA throughput, so lag may increase during this stage without indicating a problem.
When ceaStage is "steady state", mongosync processes only source writes that occur after collection copy finishes. If mongosync throughput exceeds the source write rate, lag should decrease.
Aviso
If lag continues to increase while ceaStage is "steady state", mongosync is not keeping up with the source cluster. Unless the source write rate decreases or the CEA throughput increases, mongosync cannot catch up and complete the migration. In this case, you can do one of the following:
Increase the
--loadLevelvalue, if CPU usage permits.Dimensione o cluster de destino para adicionar mais capacidade de CPU.
Reduza a taxa de gravação do cluster de origem, se possível.
Proteção de endpoint
mongosync não protege o endpoint progress . No entanto, por padrão, a API é vinculada apenas ao host local e não aceita chamadas de outras fontes. Além disso, a chamada progress não expõe credenciais de conexão ou dados de usuário.
Exemplo
O exemplo a seguir retorna o status do processo de sincronização.
Solicitar
curl localhost:27182/api/v1/progress -XGET
Resposta
{ "progress": { "state":"RUNNING", "canCommit":true, "canWrite":false, "info":"change event application", "ceaStage":"steady state", "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 }