progress
说明
返回同步进程的更新状态或错误。
请求
GET /api/v1/progress
响应
progress
端点返回更新状态或错误。
成功响应
响应对象包含2顶级字段、 success
和progress
。
success
字段包含progress
命令的状态。 如果始终为 ,则值为true
true
。
如果mongosync
成功获取同步进程的状态,则所有响应字段都将包装在具有以下字段的顶级progress
对象中:
字段 | 类型 | 说明 |
---|---|---|
state | 字符串 | mongosync 的当前状态。 有关可能状态的信息,请参阅状态描述。 |
canCommit | 布尔 | 如果 true ,则表示提交请求将成功。 这也意味着初始同步已完成并正在应用更改事件。 |
canWrite | 布尔 | 如果 索引验证将持续进行,直到提交完成。 |
info | 字符串 | 提供有关同步进度的额外信息。 可能的
|
lagTimeSeconds | 整型 | 对于
由于源集群上持续无操作,即使源集群上没有实际写入,时间差通常比零大几秒。 当 |
totalEventsApplied | 整型 | 此 此值可能无法准确表示事件总数,因为它不是持久化的,并且在计数中忽略了某些事件。 |
collectionCopy | 对象 | 估计从collection复制的数据总量以及已复制到目标集群的数据量 |
collectionCopy
.estimatedTotalBytes | 整型 |
|
collectionCopy
.estimatedCopiedBytes | 整型 |
要将总估计进度计算为百分比,请将每个 由于操作重试, |
directionMapping | 对象 | 描述同步的映射方向,即源集群和目标集群。 |
directionMapping
.Source | 字符串 | 源集群。 以 <cluster name>: <host>:<port> 形式返回。 |
directionMapping
.Destination | 字符串 | 目标集群。 以 <cluster name>: <host>:<port> 形式返回。 |
mongosyncID | 字符串 |
1.3 版本中的新增功能。 |
coordinatorID | 字符串 | 协调器实例的标识符string 。
1.3 版本中的新增功能。 |
verification | 文档 | 提供有关嵌入式验证程序执行的验证检查的阶段和进度的信息。 1.9 版本中的新功能。 |
verification.source | 文档 | 提供有关在源集群上运行的验证检查的阶段和进度的信息。 1.9 版本中的新功能。 |
verification.source. estimatedDocumentCount | 整型 | 源集群上的估计文档数。 1.9 版本中的新功能。 |
verification.source. hashedDocumentCount | 整型 | 源集群上验证者哈希处理的文档数量。 1.9 版本中的新功能。 |
verification.source. lagTimeSeconds | 整型 | 上次对源集群执行验证检查后的时间(以秒为单位)。 1.9 版本中的新功能。 |
verification.source. phase | 字符串 | 源集群上验证进程的当前阶段。 1.9 版本中的新功能。 |
verification.source. scannedCollectionCount | 整型 | 源集群上的嵌入式验证程序扫描的集合数量。 1.9 版本中的新功能。 |
verification.source. totalCollectionCount | 整型 | 源集群上要包含在验证检查中的集合数量。 |
verification.destination | 文档 | 提供有关在目标集群上运行的验证检查的阶段和进度的信息。 1.9 版本中的新功能。 |
verification.destination. estimatedDocumentCount | 整型 | 目标集群上的估计文档数。 1.9 版本中的新功能。 |
verification.destination. hashedDocumentCount | 整型 | 目标集群上验证者哈希处理的文档数量。 1.9 版本中的新功能。 |
verification.destination. lagTimeSeconds | 整型 | 自上次对目标集群执行验证检查以来的时间(以秒为单位)。 1.9 版本中的新功能。 |
verification.destination. phase | 字符串 | 目标集群上验证进程的当前阶段。 1.9 版本中的新功能。 |
verification.destination. scannedCollectionCount | 整型 | 目标集群上的嵌入式验证程序扫描的集合数量。 1.9 版本中的新功能。 |
verification.destination. totalCollectionCount | 整型 | 目标集群上要包含在验证检查中的集合数量。 1.9 版本中的新功能。 |
错误响应
如果mongosync
遇到错误, progress
端点将返回以下字段:
字段 | 类型 | 说明 |
---|---|---|
success | 布尔 | progress 命令的状态。 如果命令成功,值为true ;如果命令失败,值为false 。 |
error | 字符串 | 错误类型。 |
errorDescription | 字符串 | 错误的详细描述。 |
行为
当
mongosync
处于IDLE
状态时,除state
和canCommit
之外的所有输出字段均为null
。当
mongosync
处于PAUSED
状态时,lagTimeSeconds
字段为null
。端点不会自动刷新。 要获取更新后的状态,请再次调用
progress
端点。在
/progress
mongosync
到达集合复制阶段之前调用 会为0 返回estimatedCopiedBytes
,并为 返回 。1estimatedTotalBytes
estimatedTotalBytes
如果在源集群上插入或删除文档,则可能会在整个集合复制阶段发生变化。estimatedCopiedBytes
永远不会大于estimatedTotalBytes
。 在集合复制阶段结束时 (estimatedCopiedBytes
=estimatedTotalBytes
),进度达到100 %。从早期版本实时升级到1.8.0或更高版本时,集合副本数据会从
[0 bytes copied / 1 bytes total]
重新开始。 实时升级后,/progress
仅报告升级完成后复制数据的进度。注意
从
mongosync
1.7.3开始, 恢复或重新启动同步操作时,mongosync
可能至少需要两分钟才能响应。 在此期间,对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 }