对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

progress

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

GET /api/v1/progress

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

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

success字段包含 progress 命令的状态。如果命令成功,值为 true;如果命令失败,值为 false

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

字段
类型
说明

state

字符串

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

canCommit

布尔

如果为 true,则表示提交请求将成功。这也意味着:

  • 初始同步已完成,正在应用更改事件。

  • 嵌入式验证器处于适合提交的状态。

如果您在调用 start 时将 buildIndexes 设立为 "afterDataCopy""excludeHashedAfterCopy"{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提交迁移时,时间差变为零。

随着版本 1.9 中引入嵌入式验证器,每当启用嵌入式验证时都会出现三个不同的 lagTimeSeconds 字段:

  • lagTimeSeconds for mongosync

  • lagTimeSeconds 为源集群为验证者

  • lagTimeSeconds 目标集群验证者

禁用嵌入式验证时,lagTimeSeconds 仅适用于 mongosync

totalEventsApplied

整型

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

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

collectionCopy

对象

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

collectionCopy .estimatedTotalBytes

整型

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

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

collectionCopy .estimatedCopiedBytes

整型

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

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

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

destination. pingLatencyMs

整型

提供从 mongosync 到目标集群的最新已知网络探测(ping)延迟(以毫秒为单位)。当复制仍在进行中并在响应中报告时,此字段每 30 秒刷新一次。如果延迟小于 1 毫秒或 mongosync 尚未执行网络探测(ping) ,则此字段不存在。如果上次网络探测(ping)尝试失败,则此字段的值为 -1

1.17版本新增。:

directionMapping

对象

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

directionMapping .Source

字符串

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

directionMapping .Destination

字符串

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

estimatedSecondsToCEACatchup

整型

变更事件应用程序 (CEA) 阶段的预计剩余时间(以秒为单位),基于 lagTimeSeconds 在最近时间间隔内减少的数量。

/progress 如果 mongosync 不在 CEA 中,或者 lagTimeSeconds 在最近的时间间隔内增加或保持不变,则不报告 estimatedSecondsToCEACatchup。在这种情况下,请等待 30 分钟,然后重试。

1.14版本新增。:

mongosyncID

字符串

mongosync 实例的标识符string 。

1.3版本新增。:

coordinatorID

字符串

协调器实例的标识符string 。

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

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

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

1.3版本新增。:

source. pingLatencyMs

整型

提供从 mongosync 到源集群的最新已知网络探测(ping)延迟(以毫秒为单位)。当复制仍在进行中并在响应中报告时,此字段每 30 秒刷新一次。如果延迟小于 1 毫秒或 mongosync 尚未执行网络探测(ping) ,则此字段不存在。如果上次网络探测(ping)尝试失败,则此字段的值为 -1

1.17版本新增。:

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

字符串

源集群上验证进程的当前阶段。这可以是以下三个值之一:

  • "not started":验证程序尚未为此集群启动任何初始集合扫描。

  • "initial hashing":验证程序正在对集群中的至少一个集合进行初始扫描。

  • "stream hashing":验证程序已完成对集群的初始扫描,现在正在跟踪其变更流。

如果验证者需要重新扫描集合,则即使终结点之前报告为 "stream hashing" 阶段,验证者也可以返回到 "initial hashing" 阶段。

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

字符串

目标集群上验证进程的当前阶段。这可以是以下三个值之一:

  • "not started":验证程序尚未为此集群启动任何初始集合扫描。

  • "initial hashing":验证程序正在对集群中的至少一个集合进行初始扫描。

  • "stream hashing":验证程序已完成对集群的初始扫描,现在正在跟踪其变更流。

如果验证者需要重新扫描集合,则即使终结点之前报告为 "stream hashing" 阶段,验证者也可以返回到 "initial hashing" 阶段。

1.9版本新增。:

verification.destination. scannedCollectionCount

整型

目标集群上的嵌入式验证程序扫描的集合数量。

1.9版本新增。:

verification.destination. totalCollectionCount

整型

目标集群上要包含在验证检查中的集合数量。

1.9版本新增。:

如果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 %。

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"
},
"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
}