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 Alterado na versão 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 | Estágio da fase do Aplicativo de Evento de Alteração (CEA). Só aparece quando
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 | Descontinuado 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 A partir de | ||||
| 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.
Estágios do aplicativo de eventos de alteração
Novidades na versão 1.22.
O campo ceaStage informa o quanto o mongosync progrediu na fase de Change Evento Aplicativo (CEA). ceaStage pode ajudá-lo a interpretar o atraso de mongosync.
Durante "collection copy drain", mongosync aplica eventos de alteração acumulados durante cópia da coleção. Como a cópia da coleção pode já ter copiado um documento cuja inserção permanece na fila no backlog, reproduzir essa inserção pode produzir um erro de chave duplicada esperado. Lidar com esses erros pode reduzir temporariamente a taxa de transferência do CEA, portanto, o lag pode aumentar durante esta fase sem indicar um problema.
Quando ceaStage é "steady state", mongosync processa apenas gravações de origem que ocorrem após a conclusão da cópia da coleção. Se a taxa de transferência de mongosync exceder a taxa de gravar de origem, o atraso deve diminuir.
Aviso
Se o atraso continuar a aumentar enquanto ceaStage for "steady state", mongosync não está acompanhando o cluster de origem. A menos que a taxa de gravar de origem diminua ou a taxa de transferência do CEA aumente, mongosync não consegue acompanhar e concluir a migração. Nesse caso, você pode seguir um destes procedimentos:
Aumente o valor de
--loadLevel, se o uso da CPU permitir.Dimensionar o cluster de destino para adicionar mais capacidade de CPU.
Reduza a taxa de gravar 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 }