Docs 菜单
Docs 主页
/ /
mongosync API 端点

progress

返回同步进程的更新状态或错误。

GET /api/v1/progress

progress端点返回更新状态或错误。

响应对象包含2顶级字段、 successprogress

success字段包含progress命令的状态。 如果始终为 ,则值为true true

如果mongosync成功获取同步进程的状态,则所有响应字段都将包装在具有以下字段的顶级progress对象中:

字段
类型
说明

state

字符串

mongosync的当前状态。 有关可能状态的信息,请参阅状态描述。

canCommit

布尔

如果true ,则表示提交请求将成功。 这也意味着初始同步已完成并正在应用更改事件。

canWrite

布尔

如果true ,则表示允许在目标集群上进行写入。 当canWritefalse时,请勿写入目标集群。

索引验证将持续进行,直到提交完成。

info

字符串

提供有关同步进度的额外信息。 可能的info值包括:

  • "collection copy"

  • "change event application"

  • "waiting for commit to complete"

  • "commit completed"

lagTimeSeconds

整型

对于mongosync的此实例, mongosync应用于目标集群的最新事件时间戳与源集群上的最新时间戳之间的时间差(以秒为单位)。

mongosync 对源集群定期执行无操作写入,这可能会阻止lagTimeSeconds字段的值在mongosync提交迁移之前达到零。

由于源集群上持续无操作,即使源集群上没有实际写入,时间差通常比零大几秒。 当mongosync提交迁移时,时间差变为零。

totalEventsApplied

整型

mongosync实例已应用于目标集群的变更事件的大致数量。

此值可能无法准确表示事件总数,因为它不是持久化的,并且在计数中忽略了某些事件。

collectionCopy

对象

估计从collection复制的数据总量以及已复制到目标集群的数据量

collectionCopy .estimatedTotalBytes

整型

mongosync在collection的初始复制期间,所有实例要全局复制的估计字节总数。

mongosync 近似迁移前的估计总字节数,并且在同步过程中不会更新此值。此值不反映同步期间对源集群所做的更改,也不是迁移进度的准确指示器。

collectionCopy .estimatedCopiedBytes

整型

mongosync在初始collection期间此实例已复制到目标集群的估计字节数。

要将总估计进度计算为百分比,请将每个mongosync实例的estimatedCopiedBytes字段的值相加,然后将结果除以estimatedTotalBytes字段的值。 然后,将结果乘以 100。

由于操作重试, estimatedCopiedBytes的值可能大于estimatedTotalBytes的值。 estimatedTotalBytesestimatedCopiedBytes的比较并不能准确反映迁移进度。

directionMapping

对象

描述同步的映射方向,即源集群和目标集群。

directionMapping .Source

字符串

源集群。 以<cluster name>: <host>:<port>形式返回。

directionMapping .Destination

字符串

目标集群。 以<cluster name>: <host>:<port>形式返回。

mongosyncID

字符串

mongosync 实例的标识符string 。

1.3 版本中的新增功能

coordinatorID

字符串

协调器实例的标识符string 。

  • mongosync由另一个实例协调时,此字段显示协调器实例的标识符字符串。

  • mongosync为协调器或单独运行时,该字段返回与其mongosyncID字段相同的值。

  • mongosync启动时,此字段会返回null ,直到mongosync识别出协调器。

1.3 版本中的新增功能

如果mongosync遇到错误, progress端点将返回以下字段:

字段
类型
说明

success

布尔

progress命令的状态。 如果命令成功,值为true ;如果命令失败,值为false

error

字符串

错误类型。

errorDescription

字符串

错误的详细描述。

  • mongosync处于IDLE状态时,除statecanCommit之外的所有输出字段均为null

  • mongosync处于PAUSED状态时, lagTimeSeconds字段为null

  • 端点不会自动刷新。 要获取更新后的状态,请再次调用progress端点。

  • /progressmongosync到达集合复制阶段之前调用 会为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"
}
},
"success": true
}

后退

开始

在此页面上