说明
返回同步进程的更新状态或错误。
请求
GET /api/v1/progress
响应
progress端点返回更新状态或错误。
成功响应
响应对象包含2顶级字段、 success和progress 。
success字段包含progress命令的状态。 如果始终为 ,则值为true true。
如果mongosync成功获取同步进程的状态,则所有响应字段都将包装在具有以下字段的顶级progress对象中:
字段 | 类型 | 说明 |
|---|---|---|
| 字符串 |
|
| 布尔 | 如果 |
| 布尔 | 如果 索引验证将持续进行,直到提交完成。 |
| 字符串 | 提供有关同步进度的额外信息。 可能的
|
| 整型 | 对于
由于源集群上持续无操作,即使源集群上没有实际写入,时间差通常比零大几秒。 当 |
| 整型 | 此 此值可能无法准确表示事件总数,因为它不是持久化的,并且在计数中忽略了某些事件。 |
| 对象 | 估计从collection复制的数据总量以及已复制到目标集群的数据量 |
| 整型 |
|
| 整型 |
要将总估计进度计算为百分比,请将每个 由于操作重试, |
| 对象 | 描述同步的映射方向,即源集群和目标集群。 |
| 字符串 | 源集群。 以 |
| 字符串 | 目标集群。 以 |
| 字符串 |
1.3 版本中的新增功能。 |
| 字符串 | 协调器实例的标识符string 。
1.3 版本中的新增功能。 |
错误响应
如果mongosync遇到错误, progress端点将返回以下字段:
字段 | 类型 | 说明 |
|---|---|---|
| 布尔 |
|
| 字符串 | 错误类型。 |
| 字符串 | 错误的详细描述。 |
行为
当
mongosync处于IDLE状态时,除state和canCommit之外的所有输出字段均为null。当
mongosync处于PAUSED状态时,lagTimeSeconds字段为null。端点不会自动刷新。 要获取更新后的状态,请再次调用
progress端点。在
/progressmongosync到达集合复制阶段之前调用 会为0 返回estimatedCopiedBytes,并为 返回 。1estimatedTotalBytesestimatedTotalBytes如果在源集群上插入或删除文档,则可能会在整个集合复制阶段发生变化。estimatedCopiedBytes永远不会大于estimatedTotalBytes。 在集合复制阶段结束时 (estimatedCopiedBytes=estimatedTotalBytes),进度达到100 %。从早期版本实时升级到1.8.0或更高版本时,集合副本数据会从
[0 bytes copied / 1 bytes total]重新开始。 实时升级后,/progress仅报告升级完成后复制数据的进度。注意
从
mongosync1.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" } }, "success": true }