설명
동기화 프로세스의 업데이트된 상태나 오류를 반환합니다.
요청
GET /api/v1/progress
응답
progress 엔드포인트가 업데이트된 상태 또는 오류를 반환합니다.
성공적인 응답
응답 객체에는 2 최상위 필드인 success 및 progress 가 포함되어 있습니다.
success 필드 progress 명령의 상태가 포함됩니다. 명령이 성공하면 값은 true 이고 명령이 실패하면 false 입니다.
mongosync 가 동기화 프로세스의 상태를 성공적으로 가져오면 모든 응답 필드가 다음 필드와 함께 최상위 progress 객체에 래핑됩니다.
필드 | 유형 | 설명 | ||||
|---|---|---|---|---|---|---|
| 문자열 |
| ||||
| 부울 |
1.21 버전에서 변경됨:
| ||||
| 부울 |
커밋 이 완료될 때까지 인덱스 유효성 검사가 계속됩니다. | ||||
| 객체 |
중요: | ||||
| integer |
| ||||
| integer |
| ||||
| integer |
| ||||
| integer | 완료된 컬렉션을 포함하여 | ||||
| 문자열 | 동기화 진행 상황에 대한 추가 정보를 제공합니다. 가능한
| ||||
| 문자열 | 변경 이벤트 적용(CEA) 단계의 단계입니다.
이 필드 사용하여 동기화 지연을 해석합니다. 자세한 내용은 변경 이벤트 적용 단계를 참조하세요. 버전 1.22에 추가 되었습니다. | ||||
| 객체 | 동기화 지연을 구성 요소별로 분류하여 보고합니다. 버전 1.21에 추가 되었습니다. | ||||
| integer |
버전 1.21에 추가 되었습니다. | ||||
| integer | 초 단위의 동기화 지연의 CRUD 구성 요소입니다. 이 필드는 버전 1.21에 추가 되었습니다. | ||||
| integer | 초 단위의 동기화 지연의 DDL 컴포넌트입니다. DDL 적용기가 비활성화되거나(예: 소스 서버 버전이 6.0보다 이전인 경우) 또는 아직 DDL 이벤트가 적용되지 않은 경우 이 필드는 버전 1.21에 추가 되었습니다. | ||||
| integer | Mongosync 에서 더 이상 사용되지 1.21
소스 클러스터의 지속적인 no-ops로 인해 소스 클러스터에 실제 쓰기가 없더라도 시간 차이가 0보다 몇 초 이상 커지는 경우가 많습니다. 버전 1.9부터 | ||||
| integer | 이 이 값은 지속되지 않고 계산에서 특정 이벤트를 생략하기 때문에 총 이벤트 수를 정확하게 나타내지 않을 수 있습니다. | ||||
| 객체 | 컬렉션에서 복사되는 데이터의 총량과 대상 클러스터로 이미 복사된 데이터의 양을 추정합니다. | ||||
| integer | 초기 collection의 복사 중에 모든
| ||||
| integer | 컬렉션의 초기 복사 중에 이 총 예상 진행률을 백분율로 계산하려면 다음과 같이 합니다.
두 값 모두 최선 노력 추정치이며 실제 마이그레이션 진행 상황을 정확하게 반영하지 못할 수 있습니다. | ||||
| integer |
버전 1.17에 추가 되었습니다. | ||||
| 객체 | 동기화에 대한 매핑 방향, 즉 소스 cluster 및 대상 cluster를 설명합니다. | ||||
| 문자열 | 소스 클러스터. | ||||
| 문자열 | 대상 cluster. | ||||
| 문자열 | 소스 클러스터 에서 사용할 수 있는 oplog 시간의 추정치를 표시합니다. 가능한 값에는 기간( 예시:
중요: 소스 클러스터에서 oplog 크기를 늘리면
버전 1.19에 추가 되었습니다. | ||||
| integer | |||||
| 문자열 |
버전 1.3에 추가 되었습니다. | ||||
| 문자열 | 코디네이터 인스턴스의 식별자 string 입니다.
버전 1.3에 추가 되었습니다. | ||||
| integer |
버전 1.17에 추가 되었습니다. | ||||
| 문서 | 내장된 검증자가 수행하는 검증 검사의 단계 및 진행 상황에 대한 정보를 제공합니다. 버전 1.9에 추가 되었습니다. | ||||
| 문서 | 소스 클러스터 에서 실행 확인 검사의 단계 및 진행 상황에 대한 정보를 제공합니다. 버전 1.9에 추가 되었습니다. | ||||
| integer | 소스 클러스터 의 예상 문서 수입니다. 버전 1.9에 추가 되었습니다. | ||||
| integer | 소스 클러스터 에서 검증자가 해시 문서 수입니다. 버전 1.9에 추가 되었습니다. | ||||
| integer | 소스 클러스터 에서 마지막 확인 확인이 수행된 후의 시간(초)입니다. 버전 1.9에 추가 되었습니다. | ||||
| 문자열 | 소스 클러스터 에 대한 확인 프로세스 의 현재 단계입니다. 이 값은 다음 세 가지 값 중 하나일 수 있습니다.
검증자가 컬렉션 다시 스캔해야 하는 경우 엔드포인트가 이전에
| ||||
| integer | 소스 클러스터 의 내장된 검증자가 스캔한 컬렉션의 수입니다. 버전 1.9에 추가 되었습니다. | ||||
| integer | 확인 검사에 포함할 소스 클러스터 의 컬렉션 수입니다. | ||||
| 문서 | 대상 클러스터 에서 실행 확인 검사의 단계 및 진행 상황에 대한 정보를 제공합니다. 버전 1.9에 추가 되었습니다. | ||||
| integer | 대상 클러스터 의 예상 문서 수입니다. 버전 1.9에 추가 되었습니다. | ||||
| integer | 대상 클러스터 에서 검증자가 해시 문서 수입니다. 버전 1.9에 추가 되었습니다. | ||||
| integer | 대상 클러스터 에서 마지막으로 확인 검사를 수행한 이후 경과된 시간(초)입니다. 버전 1.9에 추가 되었습니다. | ||||
| 문자열 | 대상 클러스터 에 대한 확인 프로세스 의 현재 단계입니다. 이 값은 다음 세 가지 값 중 하나일 수 있습니다.
검증자가 컬렉션 다시 스캔해야 하는 경우 엔드포인트가 이전에
| ||||
| integer | 대상 클러스터 에서 내장된 검증자가 스캔한 컬렉션의 수입니다. 버전 1.9에 추가 되었습니다. | ||||
| integer | 확인 검사에 포함할 대상 클러스터 의 컬렉션 수입니다. 버전 1.9에 추가 되었습니다. | ||||
| 문자열 배열 |
남은 oplog 예상 시간이 매우 짧은 경우 자세한 내용은 oplog 크기 조정을 참조하세요.
버전 1.19에 추가 되었습니다. |
오류 응답
mongosync 에 오류가 발생하면 progress 엔드포인트는 다음 필드를 반환합니다.
필드 | 유형 | 설명 |
|---|---|---|
| 부울 |
|
| 문자열 | 오류 유형입니다. |
| 문자열 | 오류에 대한 자세한 설명입니다. |
행동
mongosync가IDLE상태인 경우state및canCommit를 제외한 모든 출력 필드는null입니다.mongosync가PAUSED상태인 경우lag객체는null이고 더 이상 사용되지 않는lagTimeSeconds필드는null입니다.mongosync이(가)INITIALIZING상태 이면mongosync은(는)/start요청을 거부합니다. 초기화가 완료되면mongosync가IDLE를 반환하고/start요청을 수락합니다.충돌 후
mongosync가 재개되거나 다시 시작되는 경우 초기화가 완료되면/progress응답은 충돌 전의state를 반환합니다.엔드포인트가 자동 새로 고침되지 않습니다. 업데이트된 상태를 가져오려면
progress엔드포인트를 다시 호출합니다.가 컬렉션 복사 단계에 도달하기
/progress전에mongosync0estimatedCopiedBytes1estimatedTotalBytes를 호출하면, 에 대해 를 반환합니다.컬렉션 복사 중,
estimatedCopiedBytes이estimatedTotalBytes를 초과하는 경우에만 이 변경됩니다. 이러한 경우,mongosync가estimatedTotalBytes을estimatedCopiedBytes와 같게 높입니다.컬렉션 복사 마지막에서
estimatedTotalBytes은estimatedCopiedBytes과 같습니다.mongosync는 복사된 총 바이트를 정보의 소스로 사용합니다. 두 값 모두 최선의 노력 추정치입니다.
변경 이벤트 적용 단계
버전 1.22에 추가 되었습니다.
ceaStage 필드 mongosync가 CEA(Change Event Application) 단계를 통해 얼마나 진행되었는지 보고합니다. ceaStage는 mongosync 지연을 해석하는 데 도움이 될 수 있습니다.
"collection copy drain" 동안 mongosync는 컬렉션 복사 중에 축적된 변경 이벤트를 적용합니다. 컬렉션 복사본이 백로그에서 삽입이 대기열에 남아 있는 문서 이미 복사했을 수 있으므로 해당 삽입을 재생하면 예상되는 중복 키 오류가 발생할 수 있습니다. 이러한 오류를 처리하면 CEA 처리량 일시적으로 줄어들 수 있으므로 이 단계에서는 문제를 나타내지 않고 지연 시간이 증가할 수 있습니다.
ceaStage가 "steady state"인 경우, mongosync는 컬렉션 복사가 완료된 후에 발생하는 소스 쓰기만 처리합니다. mongosync 처리량 소스 쓰기 (write) 속도를 초과하면 지연이 감소해야 합니다.
경고
ceaStage가 "steady state"인 동안 지연이 계속 증가하면 mongosync가 소스 클러스터 따라잡지 못하는 것입니다. 소스 쓰기 (write) 속도가 감소하거나 CEA 처리량 증가하지 않는 한, mongosync는 마이그레이션 따라잡을 수 없습니다. 이 경우 다음 중 하나를 수행할 수 있습니다.
CPU 사용량이 허용하는 경우
--loadLevel값을 늘립니다.대상 클러스터 크기를 조정하여 CPU 용량 추가합니다.
가능하면 소스 클러스터의 쓰기 (write) 속도를 낮추세요.
엔드포인트 보호
mongosync progress 엔드포인트를 보호하지 않습니다. 그러나 기본적으로 API는 로컬 호스트에만 바인딩되며 다른 소스의 호출은 허용하지 않습니다. 또한 progress 호출은 연결 자격 증명이나 사용자 데이터를 노출하지 않습니다.
예시
다음 예에서는 동기화 프로세스의 상태를 반환합니다.
요청
curl localhost:27182/api/v1/progress -XGET
응답
{ "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 }