progress
설명
동기화 프로세스의 업데이트된 상태나 오류를 반환합니다.
요청
GET /api/v1/progress
응답
progress
엔드포인트가 업데이트된 상태 또는 오류를 반환합니다.
성공적인 응답
응답 객체에는 2 최상위 필드인 success
및 progress
가 포함되어 있습니다.
success
필드 에는 progress
명령의 상태가 포함됩니다. 항상 true
인 경우 값은 true
입니다.
mongosync
가 동기화 프로세스의 상태를 성공적으로 가져오면 모든 응답 필드가 다음 필드와 함께 최상위 progress
객체에 래핑됩니다.
필드 | 유형 | 설명 |
---|---|---|
state | 문자열 | mongosync 의 현재 상태 입니다. 가능한 상태에 대한 자세한 내용은 상태 설명을 참조하세요. |
canCommit | 부울 | true 인 경우 커밋 요청이 성공함을 나타냅니다. 이는 초기 동기화가 완료되어 변경 이벤트를 적용하고 있음을 의미하기도 합니다. |
canWrite | 부울 |
커밋 이 완료될 때까지 인덱스 유효성 검사가 계속됩니다. |
info | 문자열 | 동기화 진행 상황에 대한 추가 정보를 제공합니다. 가능한
|
lagTimeSeconds | integer |
소스 클러스터의 지속적인 no-ops로 인해 소스 클러스터에 실제 쓰기가 없더라도 시간 차이가 0보다 몇 초 이상 커지는 경우가 많습니다. |
totalEventsApplied | integer | 이 이 값은 지속되지 않고 계산에서 특정 이벤트를 생략하기 때문에 총 이벤트 수를 정확하게 나타내지 않을 수 있습니다. |
collectionCopy | 객체 | 컬렉션에서 복사되는 데이터의 총량과 대상 클러스터로 이미 복사된 데이터의 양을 추정합니다. |
collectionCopy
.estimatedTotalBytes | integer | 초기 collection의 복사 중에 모든
|
collectionCopy
.estimatedCopiedBytes | integer | 컬렉션의 초기 복사 중에 이 총 예상 진행률을 백분율로 계산하려면 각
|
directionMapping | 객체 | 동기화에 대한 매핑 방향, 즉 소스 cluster 및 대상 cluster를 설명합니다. |
directionMapping
.Source | 문자열 | 소스 클러스터. <cluster name>: <host>:<port> 형식으로 반환됩니다. |
directionMapping
.Destination | 문자열 | 대상 cluster. <cluster name>: <host>:<port> 형식으로 반환됩니다. |
mongosyncID | 문자열 |
버전 1.3에 새로 추가되었습니다. |
coordinatorID | 문자열 | 코디네이터 인스턴스의 식별자 string 입니다.
버전 1.3에 새로 추가되었습니다. |
verification | 문서 | 내장된 검증자가 수행하는 검증 검사의 단계 및 진행 상황에 대한 정보를 제공합니다. 버전 1.9에 새로 추가되었습니다. |
verification.source | 문서 | 소스 클러스터 에서 실행 확인 검사의 단계 및 진행 상황에 대한 정보를 제공합니다. 버전 1.9에 새로 추가되었습니다. |
verification.source. estimatedDocumentCount | integer | 소스 클러스터 의 예상 문서 수입니다. 버전 1.9에 새로 추가되었습니다. |
verification.source. hashedDocumentCount | integer | 소스 클러스터 에서 검증자가 해시 한 문서 수입니다. 버전 1.9에 새로 추가되었습니다. |
verification.source. lagTimeSeconds | integer | 소스 클러스터 에서 마지막 확인 확인이 수행된 후의 시간(초)입니다. 버전 1.9에 새로 추가되었습니다. |
verification.source. phase | 문자열 | 소스 클러스터 에 대한 확인 프로세스 의 현재 단계입니다. 버전 1.9에 새로 추가되었습니다. |
verification.source. scannedCollectionCount | integer | 소스 클러스터 의 내장된 검증자가 스캔한 컬렉션의 수입니다. 버전 1.9에 새로 추가되었습니다. |
verification.source. totalCollectionCount | integer | 확인 검사에 포함할 소스 클러스터 의 컬렉션 수입니다. |
verification.destination | 문서 | 대상 클러스터 에서 실행 확인 검사의 단계 및 진행 상황에 대한 정보를 제공합니다. 버전 1.9에 새로 추가되었습니다. |
verification.destination. estimatedDocumentCount | integer | 대상 클러스터 의 예상 문서 수입니다. 버전 1.9에 새로 추가되었습니다. |
verification.destination. hashedDocumentCount | integer | 대상 클러스터 에서 검증자가 해시 한 문서 수입니다. 버전 1.9에 새로 추가되었습니다. |
verification.destination. lagTimeSeconds | integer | 대상 클러스터 에서 마지막으로 확인 검사를 수행한 이후 경과된 시간(초)입니다. 버전 1.9에 새로 추가되었습니다. |
verification.destination. phase | 문자열 | 대상 클러스터 에 대한 확인 프로세스 의 현재 단계입니다. 버전 1.9에 새로 추가되었습니다. |
verification.destination. scannedCollectionCount | integer | 대상 클러스터 에서 내장된 검증자가 스캔한 컬렉션의 수입니다. 버전 1.9에 새로 추가되었습니다. |
verification.destination. totalCollectionCount | integer | 확인 검사에 포함할 대상 클러스터 의 컬렉션 수입니다. 버전 1.9에 새로 추가되었습니다. |
오류 응답
mongosync
에 오류가 발생하면 progress
엔드포인트는 다음 필드를 반환합니다.
필드 | 유형 | 설명 |
---|---|---|
success | 부울 | progress 명령의 상태입니다. 명령이 성공하면 값은 true 이고 명령이 실패하면 false 입니다. |
error | 문자열 | 오류 유형입니다. |
errorDescription | 문자열 | 오류에 대한 자세한 설명입니다. |
행동
mongosync
가IDLE
상태인 경우state
및canCommit
를 제외한 모든 출력 필드는null
입니다.mongosync
가PAUSED
상태인 경우lagTimeSeconds
필드는null
입니다.엔드포인트가 자동 새로 고침되지 않습니다. 업데이트된 상태를 가져오려면
progress
엔드포인트를 다시 호출합니다.가 컬렉션 복사 단계에 도달하기
/progress
전에mongosync
0estimatedCopiedBytes
1estimatedTotalBytes
를 호출하면, 에 대해 를 반환합니다.estimatedTotalBytes
소스 클러스터 에서 문서가 삽입되거나 삭제되는 경우 컬렉션 복사 단계 전체에서 변경될 수 있습니다.estimatedCopiedBytes
는estimatedTotalBytes
보다 크지 않습니다. 컬렉션 복사 단계(estimatedCopiedBytes
=estimatedTotalBytes
)가 끝날 때 진행률이 100%에 도달합니다.이전 버전에서 1.8.0 이상으로 실시간 업그레이드 를 수행할 때 컬렉션 복사본 데이터는
[0 bytes copied / 1 bytes total]
에서 다시 시작됩니다. 실시간 업그레이드 후/progress
는 업그레이드 가 완료된 후에 복사된 데이터의 진행 상황만 보고합니다.참고
mongosync
1.7.3 부터 시작, 동기화 작업을 재개하거나 다시 시작할 때mongosync
가 응답하는 데 최소 2분 정도 걸릴 수 있습니다. 이 시간 동안progress
엔드포인트에 대한 호출이 실패할 수 있습니다.progress
호출이 실패해도 안전하게 다시 시도할 수 있습니다.
엔드포인트 보호
mongosync
progress
엔드포인트를 보호하지 않습니다. 그러나 기본적으로 API는 로컬 호스트에만 바인딩되며 다른 소스의 호출은 허용하지 않습니다. 또한 progress
호출은 연결 자격 증명이나 사용자 데이터를 노출하지 않습니다.
예시
다음 예에서는 동기화 프로세스의 상태를 반환합니다.
요청
curl localhost:27182/api/v1/progress -XGET
응답
{ "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" }, "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 }