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

监控

了解如何通过监控来观察 MongoDB Kafka 源连接器或 MongoDB Kafka 接收器连接器的行为。 监控是获取正在运行的程序所执行的活动信息以用于应用程序或应用程序性能管理库的过程。

要学习;了解监控在Connector中的工作原理和使用方法,请参阅使用案例部分。

要查看显示如何监控正在运行的connector的示例,请参阅示例 - 监控快速入门部分。

要查看 MongoDB 源连接器和接收器连接器生成的所有指标的列表,请参阅可用指标部分。

本节介绍监控 MongoDB 源连接器和接收器连接器的使用案例,以及如何使用连接器提供的指标来满足这些使用案例。

提示

计算值

要了解connector提供哪些类型的指标以及何时实施逻辑以计算值,请参阅指标类型。

下表描述了监控 MongoDB Sink 连接器的一些使用案例,以及 Sink 连接器为满足这些使用案例而提供的指标:

用例(Use Case)
要使用的指标

您想知道管道的某个组件是否落后。

使用latest-kafka-time-difference-ms指标。 该指标表示记录到达 Kafka 主题与您的connector收到该记录之间的时间间隔。如果该指标的值不断增加,则表明 Apache Kafka 或 MongoDB 可能存在问题。

您想知道connector写入MongoDB的记录总数。

使用records指标。

您想知道connector在尝试写入MongoDB时遇到的写入错误总数。

使用batch-writes-failed指标。

您想知道 MongoDB 性能是否随着时间的推移而变慢。

使用in-task-put-duration-ms指标对速度下降进行初步诊断。

使用以下指标进一步诊断任何问题:

  • batch-writes-successful-duration-over-<number>-ms

  • batch-writes-failed-duration-over-<number>-ms

  • processing-phase-duration-over-<number>-ms

您想要找到Kafka Connect 和MongoDB Sink connector将记录写入MongoDB所花费的时间。

比较以下指标的值:

  • in-task-put-duration-ms

  • in-connect-framework-duration-ms

您可以在“接收器连接器 JMX 指标”部分找到所有MongoDB接收器Connector指标的描述。

下表描述了监控 MongoDB connector的一些使用案例,以及connector为满足这些使用案例而提供的指标:

用例(Use Case)
要使用的指标

您想知道管道的某个组件是否落后。

使用latest-mongodb-time-difference-secs指标。 该指标表示connector最近处理的change stream事件的持续时间。如果该指标不断增加,则表明 Apache Kafka 或 MongoDB 可能存在问题。

您想知道源connector已处理的变更流事件总数。

使用records指标。

您想知道connector已收到但未能写入Apache Kafka的记录的百分比。

使用records 、 records-filtered和records-acknowledged指标执行以下计算:

(records - (records-acknowledged + records-filtered)) / records

您想知道connector已处理文档的平均大小。

使用mongodb-bytes-read和records指标执行以下计算:

mongodb-bytes-read / records

要学习;了解如何计算一段时间内记录的平均大小,请参阅 mongodb-bytes-read。

您想要找到Kafka Connect 和MongoDB源connector将记录写入Apache Kafka所花费的时间。

比较以下指标的值:

  • in-task-poll-duration-ms

  • in-connect-framework-duration-ms

您想知道 MongoDB 性能是否随着时间的推移而变慢。

使用in-task-poll-duration-ms指标对速度下降进行初步诊断。

使用以下指标进一步诊断任何问题:

  • initial-commands-successful-duration-over-<number>-ms

  • initial-commands-failed-duration-over-<number>-ms

  • getmore-commands-successful-duration-over-<number>-ms

  • getmore-commands-failed-duration-over-<number>-ms

您可以在 源connector JMX 指标 部分找到所有MongoDB 源connector 指标的描述。

MongoDB Kafka Connector 使用Java 管理扩展 (JMX)来启用监控。 JMX 是 Java Platform, Standard Edition 中包含的一项技术,可提供用于监控应用程序和设备的工具。 您可以使用任何 JMX 控制台(例如 JConsole)查看connector生成的指标。

MongoDB Kafka Connector 提供各个任务的指标。 任务是由 Kafka Connect 实例化的类,用于将数据复制到数据存储和 Apache Kafka 以及从数据存储和 Apache Kafka 复制数据。 Kafka Connect 中两类任务的名称和职责如下:

  • 源任务将数据从数据存储复制到 Apache Kafka。

  • Sink 任务将数据从 Apache Kafka 复制到数据存储。

接收器连接器配置一个或多个接收器任务。 源连接器可配置一个或多个源任务。

要了解有关 JMX 的更多信息,请参阅 Oracle 提供的以下资源:

要了解有关 Kafka Connect 中任务和连接器的更多信息,请参阅以下资源:

MongoDB Kafka Connector 使用 Kafka Connect 的指标基础架构来提供指标。 要读取连接器生成的指标,请在 Kafka Connect 部署中启用 JMX。

要学习;了解如何为托管上运行的Kafka Connect实例启用JMX,请参阅Kafka官方文档。

要学习;了解如何为容器化Kafka Connect部署启用JMX,请参阅结合使用 JMX 和Docker进行Kafka监控和指标。

connector提供与以下数量类型相关的指标:

  • connector任务中事件总共发生的次数

  • 与最近发生的事件相关的值

对于某些使用案例,您必须使用connector提供的指标执行额外计算。 例如,您可以根据提供的指标计算以下值:

  • 指标的变化率

  • 某一指标在一段时间内的值

  • 一个指标与另一个指标之间的差异

要查看计算指标的一些示例,请参阅“使用案例”部分。

MongoDB Kafka Connector 和 Kafka Connect 都会为 MongoDB Connector 任务生成指标。

两组指标都提供有关任务如何与 Kafka Connect 交互的信息,但只有 MongoDB Kafka Connector 指标提供有关任务如何与 MongoDB 交互的信息。

MongoDB Kafka Connector 在以下 JMX 路径下生成指标:

  • com.mongodb.kafka.connect.sink-task-metrics.sink-task-<monitonically increasing number>

  • com.mongodb.kafka.connect.source-task-metrics.source-task-<monitonically increasing number>

  • com.mongodb.kafka.connect.source-task-metrics.source-task-change-stream-<monitonically increasing number>

  • com.mongodb.kafka.connect.source-task-metrics.source-task-copy-existing-<monitonically increasing number>

Kafka Connect 在以下 JMX 路径下生成指标:

  • kafka.connect.sink-task-metrics.<connector-name>

  • kafka.connect.source-task-metrics.<connector-name>

  • kafka.connect.connector-task-metrics.<connector-name>

要将 Kafka Connect 指标与 MongoDB Kafka Connector 指标关联,您必须记住将连接器添加到 Kafka Connect 的顺序。

注意

命名冲突

如果 MongoDB Kafka Connector 在尝试在 JMX 路径上注册MBean时遇到命名冲突,MongoDB Kafka Connector 则会在MBean后添加版本后缀。

例如,如果connector尝试在路径 下注册MBean com.mongodb.kafka.connect.sink-task-metrics.sink-task-0但未能成功,则会尝试在 下注册MBean com.mongodb.kafka.connect.sink-task-metrics.sink-task-0-v1。

假设您将一个名为my-source-connector的 MongoDB connector 添加到部署中。

MongoDB connector会将指标写入以下 JMX 路径:

  • com.mongodb.kafka.connect.sink-task-metrics.sink-task-0

Kafka Connect 将此任务的指标写入以下路径:

  • kafka.connect.sink-task-metrics.my-source-connector

快速入门中提供的示例环境会公开 URI localhost:35000处的主机上的指标。

要使用 JConsole 查看这些指标,请执行以下操作:

1

JConsole 是Java Platform, Standard Edition 的一部分。要下载JConsole,请从Oracle下载Java SE 开发工具包。

2

按照快速入门进行操作,直到执行“通过连接器发送文档内容”步骤。

3

从命令行运行以下命令以启动 JConsole:

jconsole
4
  1. 在 JConsole 界面的Remote Process文本输入框中输入您的 JMX Server URI localhost:35000 。

  2. 单击 Connect(连接)。

  3. 在对话框中,单击 Insecure Connection(确认)。

5
  1. 导航到 JConsole 中的MBeans标签页。

  2. 检查Connector指标。 请注意, com.mongodb.kafka.connect.sink-task-metrics.sink-task-0.records属性的值为0 。 该值表示您的 Sink任务尚未从Apache Kafka收到任何记录。

  3. 继续快速启动,直到(但不是完成)“删除沙盒”步骤。

  4. 导航回 JConsole 中的MBeans标签页。 com.mongodb.kafka.connect.sink-task-metrics.sink-task-0.records属性现在的值应为1 。

6

要停止并删除快速入门环境,请按照快速入门的删除沙盒步骤进行操作。

使用本节表中的属性,通过 Java 管理扩展 (JMX) 监控源连接器和接收器连接器的行为。

提示

JMX 属性

JMX 将单个指标表示为 MBean 的属性。要学习;了解有关属性和 MBeans 的更多信息,请参阅Oracle的标准 MBean 教程。

注意

Poll 和 Put 方法

MongoDB connector任务具有poll()方法,用于从 MongoDB 检索文档并将其发送到 Apache Kafka。MongoDB connector 任务具有put()方法,用于从 Apache Kafka 检索文档并将其发送到 MongoDB。

要了解有关poll()和put()方法的详情,请参阅以下资源:

属性名称
说明

记录

MongoDB Sink 任务收到的 Kafka 记录总数。

记录成功

MongoDB Sink 任务成功写入 MongoDB 的 Kafka 记录总数。

记录失败

MongoDB 接收器任务无法写入 MongoDB 的 Kafka 记录总数。

latest-kafka-time-difference-ms

MongoDB Sink 任务和 Kafka 之间最近记录的时间差的毫秒数。 该值的计算方法是减去连接器时钟的当前时间和任务收到的最后一条记录的时间戳。

in-task-put

Kafka Connect 框架执行 MongoDB 接收器任务的put()方法的总次数。

in-任务-put-duration-ms

Kafka Connect 框架执行 MongoDB 接收器任务的put()方法所花费的总毫秒数。

in-task-put-duration-over-1-ms

执行持续时间超过 1 毫秒的 MongoDB 接收器任务put()方法的总数。

in-任务-put-duration-over-10-ms

持续时间超过 10 毫秒的 MongoDB 接收器任务put()方法执行总数。

in-任务-put-duration-over-100-ms

持续时间超过 100 毫秒的 MongoDB 接收器任务put()方法执行的总数。

in-task-put-duration-over-1000-ms

持续时间超过 1000 毫秒的 MongoDB 接收器任务put()方法执行总数。

in-task-put-duration-over-10000-ms

持续时间超过 10000 毫秒的 MongoDB 接收器任务put()方法执行总数。

in-connect-framework

首次调用 MongoDB 接收器任务的put()方法后,Kafka Connect 框架中执行代码的总次数。

in-connect-framework-duration-ms

自 Kafka Connect 框架首次调用 MongoDB 接收器任务的put()方法以来,在该框架中执行代码所花费的总毫秒数。 此指标不将 MongoDB 接收器任务中执行代码的时间计入总时间。

in-connect-框架-duration-over-1-ms

Kafka Connect 框架中执行代码的持续时间超过 1 毫秒的总次数。

in-connect-框架-duration-over-10-ms

Kafka Connect 框架中代码执行时间超过 10 毫秒的总次数。

in-connect-框架-duration-over-100-ms

Kafka Connect 框架中代码执行时间超过 100 毫秒的总次数。

in-connect-框架-duration-over-1000-ms

Kafka Connect 框架中代码执行时间超过 1000 毫秒的总次数。

in-connect-框架-duration-over-10000-ms

Kafka Connect 框架中代码执行时间超过 10000 毫秒的总次数。

处理阶段

MongoDB 任务对来自 Kafka 的批处理记录执行处理阶段的总次数。MongoDB 任务的处理阶段是指从 Kafka 获取记录之后开始到将记录写入 MongoDB 之前结束的一组操作。

Processing-Phases-Duration-ms

MongoDB 接收器任务在将记录写入 MongoDB 之前处理记录所花费的总毫秒数。

Processing-Phases-duration-over-1-ms

持续时间超过 1 毫秒的 MongoDB 接收器任务处理阶段执行总数。

Processing-Phases-Duration-over-10-ms

持续时间超过 10 毫秒的 MongoDB 接收器任务处理阶段执行总数。

Processing-Phases-Duration-over-100-ms

持续时间超过 100 毫秒的 MongoDB 接收器任务处理阶段执行总数。

Processing-Phases-Duration-over-1000-ms

持续时间超过 1000 毫秒的 MongoDB 接收器任务处理阶段执行总数。

Processing-Phases-Duration-over-10000-ms

持续时间超过 10000 毫秒的 MongoDB 接收器任务处理阶段执行总数。

batch-writes-successful

MongoDB接收器任务成功写入MongoDB cluster的批处理总数。

批处理-writes-successful-duration-ms

MongoDB接收器任务成功写入MongoDB cluster所花费的总毫秒数。

批处理-writes-successful-duration-over-1-ms

MongoDB 任务成功执行的持续时间超过 1 毫秒的批处理写入总数。

批处理-writes-successful-duration-over-10-ms

MongoDB 接收器任务成功执行的持续时间超过 10 毫秒的批量写入总数。

批处理-writes-successful-duration-over-100-ms

MongoDB 任务成功执行的持续时间超过 100 毫秒的批处理写入总数。

批处理-writes-successful-duration-over-1000-ms

MongoDB 任务成功执行的持续时间超过 1000 毫秒的批处理写入总数。

批处理-writes-successful-duration-over-10000-ms

MongoDB 任务成功执行的持续时间超过 10000 毫秒的批处理写入总数。

batch-writes-failed

MongoDB接收器任务未能写入MongoDB cluster的批处理总数。

batch-writes-failed-duration-ms

MongoDB接收器任务尝试将批处理写入MongoDB cluster失败所花费的总毫秒数。

批处理-writes-failed-duration-over-1-ms

MongoDB 任务尝试进行的持续时间超过 1 毫秒的失败批处理写入总次数。

批处理-writes-failed-duration-over-10-ms

MongoDB 接收器任务尝试的持续时间超过 10 毫秒的失败批量写入总次数。

批处理-writes-failed-duration-over-100-ms

MongoDB 任务尝试的持续时间超过 100 毫秒的失败批处理写入总次数。

批处理-writes-failed-duration-over-1000-ms

MongoDB 任务尝试的持续时间超过 1000 毫秒的失败批处理写入总次数。

批处理-writes-failed-duration-over-10000-ms

MongoDB 任务尝试的持续时间超过 10000 毫秒的失败批处理写入总次数。

注意

初始命令和 getMore 命令

源connector任务的某些指标会区分初始命令和getMore命令。 初始命令是发送到 MongoDB 实例的find或aggregate命令,用于检索客户端 MongoDB 游标中的第一组文档。 getMore命令是获取游标中后续文档集的 MongoDB 命令。

要学习;了解有关 getMore 命令的更多信息,请参阅 getMore 页面。

属性名称
说明

记录

MongoDB 源任务传递到 Kafka Connect 框架的记录总数。

已筛选记录

MongoDB 源任务传递到 Kafka Connect 框架,然后由框架筛选的记录数。 筛选后的记录不会写入 Kafka。

已确认记录

MongoDB 源任务传递到 Kafka Connect 框架,然后成功写入 Kafka 的记录总数。

mongodb-bytes-read

MongoDB源任务从MongoDB cluster读取的总字节数。

要计算connector在一段时间内处理的记录的平均大小,请执行以下操作:

  1. 确定一段时间内mongodb-bytes-read属性值的变化。

  2. 确定您在上一步中使用的同一时间跨度的records属性值的变化。

  3. 将mongodb-bytes-read属性值的变化除以records属性值的变化。

latest-mongodb-time-difference-secs

MongoDB cluster与MongoDB源任务持有的批处理后恢复令牌之间记录的最近时间差的秒数。 该值的计算方法是从任务最近成功执行的 MongoDB 命令的operationTime值中减去任务的批处理后恢复令牌的时间戳。

in-任务-poll

Kafka Connect 框架执行 MongoDB 源任务的poll()方法的总次数。

in-任务-poll-duration-ms

Kafka Connect 框架执行 MongoDB 源任务的poll()方法所花费的总毫秒数。

in-任务-poll-duration-over-1-ms

持续时间超过 1 毫秒的 MongoDB 源任务poll()方法执行总数。

in-task-poll-duration-over-10-ms

持续时间超过 10 毫秒的 MongoDB 源任务poll()方法执行总数。

in-task-poll-duration-over-100-ms

持续时间超过 100 毫秒的 MongoDB 源任务poll()方法执行总数。

in-任务-poll-duration-over-1000-ms

持续时间超过 1000 毫秒的 MongoDB 源任务poll()方法执行总数。

in-task-poll-duration-over-10000-ms

持续时间超过 10000 毫秒的 MongoDB 源任务poll()方法执行总数。

in-connect-framework

首次调用 MongoDB 源任务的poll()方法后,Kafka Connect 框架中执行代码的总次数。

in-connect-framework-duration-ms

自 Kafka Connect 框架首次调用 MongoDB 源任务的poll()方法以来,在该框架中执行代码所花费的总毫秒数。 此指标不将 MongoDB 接收器任务中执行代码的时间计入总时间。

in-connect-框架-duration-over-1-ms

Kafka Connect 框架中执行代码的持续时间超过 1 毫秒的总次数。

in-connect-框架-duration-over-10-ms

Kafka Connect 框架中代码执行时间超过 10 毫秒的总次数。

in-connect-框架-duration-over-100-ms

Kafka Connect 框架中代码执行时间超过 100 毫秒的总次数。

in-connect-框架-duration-over-1000-ms

Kafka Connect 框架中代码执行时间超过 1000 毫秒的总次数。

in-connect-框架-duration-over-10000-ms

Kafka Connect 框架中代码执行时间超过 10000 毫秒的总次数。

initial-commands-successful

成功的 MongoDB 源任务发出的初始命令总数。 初始命令是发送到MongoDB cluster的查找或聚合命令,用于检索游标中的第一组文档。 getMore命令不是初始命令。

initial-commands-successful-duration-ms

MongoDB 源任务成功执行初始命令所花费的总毫秒数。

initial-commands-successful-duration-over-1-ms

MongoDB 源任务成功发出的持续时间超过 1 毫秒的初始命令总数。

initial-commands-successful-duration-over-10-ms

MongoDB 源任务成功发出的持续时间超过 10 毫秒的初始命令总数。

initial-commands-successful-duration-over-100-ms

MongoDB 源任务成功发出的持续时间超过 100 毫秒的初始命令总数。

initial-commands-successful-duration-over-1000-ms

MongoDB 源任务成功发出的持续时间超过 1000 毫秒的初始命令总数。

initial-commands-successful-duration-over-10000-ms

MongoDB 源任务成功发出的持续时间超过 10000 毫秒的初始命令总数。

getmore-commands-successful

成功的 MongoDB 源任务发出的getMore命令总数。

getmore-commands-successful-duration-ms

MongoDB 源任务成功执行getMore命令所花费的总毫秒数。

getmore-commands-successful-duration-over-1-ms

MongoDB 源任务成功发出的持续时间超过 1 毫秒的getMore命令总数。

getmore-commands-successful-duration-over-10-ms

MongoDB 源任务成功发出的持续时间超过 10 毫秒的getMore命令总数。

getmore-commands-successful-duration-over-100-ms

MongoDB 源任务成功发出的持续时间超过 100 毫秒的getMore命令总数。

getmore-commands-successful-duration-over-1000-ms

MongoDB 源任务成功发出的持续时间超过 1000 毫秒的getMore命令总数。

getmore-commands-successful-duration-over-10000-ms

MongoDB 源任务成功发出的持续时间超过 10000 毫秒的getMore命令总数。

initial-commands-failed

失败的 MongoDB 源任务发出的初始命令总数。 初始命令是发送到MongoDB cluster的查找或聚合命令,用于检索游标中的第一组文档。 getMore命令不是初始命令。

initial-commands-failed-duration-ms

MongoDB 任务尝试向 MongoDB Server 发出初始命令失败所花费的总毫秒数。

initial-commands-failed-duration-over-1-ms

MongoDB 源任务发出的持续时间超过 1 毫秒的失败初始命令总数。

initial-commands-failed-duration-over-10-ms

MongoDB 源任务发出的持续时间超过 10 毫秒的失败初始命令总数。

initial-commands-failed-duration-over-100-ms

MongoDB 源任务发出的持续时间超过 100 毫秒的失败初始命令总数。

initial-commands-failed-duration-over-1000-ms

MongoDB 源任务发出的持续时间超过 1000 毫秒的失败初始命令总数。

initial-commands-failed-duration-over-10000-ms

MongoDB 源任务发出的持续时间超过 10000 毫秒的失败初始命令总数。

getmore-commands-failed

失败的 MongoDB 源任务发出的getMore命令总数。

getmore-commands-failed-duration-ms

MongoDB 任务尝试向 MongoDB Server 发出getMore命令失败所花费的总毫秒数。

getmore-commands-failed-duration-over-1-ms

MongoDB 源任务发出的持续时间超过 1 毫秒的getMore命令失败的总次数。

getmore-commands-failed-duration-over-10-ms

MongoDB 源任务发出的持续时间超过 10 毫秒的getMore命令失败总次数。

getmore-commands-failed-duration-over-100-ms

MongoDB 源任务发出的持续时间超过 100 毫秒的getMore命令失败的总次数。

getmore-commands-failed-duration-over-1000-ms

MongoDB 源任务发出的持续时间超过 1000 毫秒的getMore命令失败的总次数。

getmore-commands-failed-duration-over-10000-ms

MongoDB 源任务发出的持续时间超过 10000 毫秒的getMore命令失败的总次数。