5.6. 监控 Debezium MySQL 连接器性能


Debezium MySQL 连接器除了对 Zookeeper、Kafka 和 Kafka Connect 提供的 JMX 指标的内置支持外,还提供三种类型的指标。

Debezium 监控文档 提供了有关如何使用 JMX 公开这些指标的详细信息。

5.6.1. 在 MySQL 数据库的快照期间监控 Debezium

MBeandebezium.mysql:type=connector-metrics,context=snapshot,server= <mysql.server.name>

除非快照操作处于活跃状态,否则快照指标不会被公开,或者快照自上次连接器启动后发生。

下表列出了可用的 shapshot 指标。

属性类型描述

LastEvent

字符串

连接器读取的最后一个快照事件。

MilliSecondsSinceLastEvent

long

连接器读取和处理最新事件以来的毫秒数。

TotalNumberOfEventsSeen

long

此连接器从上次启动或重置后看到的事件总数。

NumberOfEventsFiltered

long

由连接器中配置的 include/exclude 列表过滤规则过滤的事件数。

CapturedTables

string[]

连接器捕获的表列表。

QueueTotalCapacity

int

用于在快照和主 Kafka Connect 循环之间传递事件的队列长度。

QueueRemainingCapacity

int

用于在快照和主 Kafka Connect 循环之间传递事件的队列的空闲容量。

TotalTableCount

int

包括在快照中的表的总数。

RemainingTableCount

int

快照要复制的表数。

SnapshotRunning

布尔值

快照是否启动。

SnapshotPaused

布尔值

快照是否暂停。

SnapshotAborted

布尔值

快照是否中止。

SnapshotCompleted

布尔值

快照是否完成。

SnapshotDurationInSeconds

long

快照目前花费的秒数,即使未完成也是如此。还包括快照暂停时的时间。

SnapshotPausedDurationInSeconds

long

快照暂停的秒数。如果快照暂停多次,则暂停的时间会增加。

RowsScanned

Map<String, Long>

包含快照中每个表扫描的行数的映射。表在处理期间逐步添加到映射中。更新每个 10,000 行扫描,并在完成表后更新。

MaxQueueSizeInBytes

long

队列的最大缓冲区(以字节为单位)。如果 max.queue.size.in.bytes 设置为正长值,则此指标可用。

CurrentQueueSizeInBytes

long

队列中记录的当前卷(以字节为单位)。

在执行增量快照时,连接器还提供以下额外快照指标:

属性类型描述

ChunkId

字符串

当前快照块的标识符。

ChunkFrom

字符串

定义当前块的主键集的下限。

ChunkTo

字符串

定义当前块的主密钥集的上限。

TableFrom

字符串

当前快照表的主键集的下限。

TableTo

字符串

当前快照表的主键集的上限。

Debezium MySQL 连接器还提供 HoldingGlobalLock 自定义快照指标。此指标设置为布尔值,指示连接器当前是否包含全局或者表写入锁定。

5.6.2. 监控 Debezium MySQL 连接器记录流

只有在启用了 binlog 事件缓冲时,事务相关的属性才可用。MBeandebezium.mysql:type=connector-metrics,context=streaming,server= <mysql.server.name>

下表列出了可用的流指标。

属性类型描述

LastEvent

字符串

连接器读取的最后一个流事件。

MilliSecondsSinceLastEvent

long

连接器读取和处理最新事件以来的毫秒数。

TotalNumberOfEventsSeen

long

此连接器自上次开始或指标重置以来看到的事件总数。

TotalNumberOfCreateEventsSeen

long

此连接器自上次开始或指标重置以来看到的创建事件总数。

TotalNumberOfUpdateEventsSeen

long

此连接器自上次开始或指标重置以来看到的更新事件总数。

TotalNumberOfDeleteEventsSeen

long

此连接器自上次开始或指标重置以来看到的删除事件总数。

NumberOfEventsFiltered

long

由连接器中配置的 include/exclude 列表过滤规则过滤的事件数。

CapturedTables

string[]

连接器捕获的表列表。

QueueTotalCapacity

int

用于在流和主 Kafka Connect 循环之间传递事件的队列长度。

QueueRemainingCapacity

int

用于在流和主 Kafka Connect 循环之间传递事件的队列的空闲容量。

Connected

布尔值

表示连接器当前是否连接到数据库服务器的标记。

MilliSecondsBehindSource

long

最后一次更改事件时间戳和连接器处理之间毫秒的数量。该值将限制运行数据库服务器和连接器的机器上时钟之间的差别。

NumberOfCommittedTransactions

long

已提交的已处理的事务数量。

SourceEventPosition

Map<String, String>

最后一次接收的事件的协调。

LastTransactionId

字符串

最后一次处理的事务的事务标识符。

MaxQueueSizeInBytes

long

队列的最大缓冲区(以字节为单位)。如果 max.queue.size.in.bytes 设置为正长值,则此指标可用。

CurrentQueueSizeInBytes

long

队列中记录的当前卷(以字节为单位)。

Debezium MySQL 连接器还提供以下额外的流指标:

表 5.31. 其他流指标的描述
属性类型描述

BinlogFilename

字符串

连接器最近读取的 binlog 文件的名称。

BinlogPosition

long

连接器读取的 binlog 中最新位置(以字节为单位)。

IsGtidModeEnabled

布尔值

表示连接器当前是否从 MySQL 服务器跟踪 GTID 的标记。

GtidSet

字符串

读取 binlog 时由连接器处理的最新 GTID 集的字符串表示。

NumberOfSkippedEvents

long

MySQL 连接器跳过的事件数。通常,事件会被跳过,因为 MySQL 的 binlog 中不正确的或未解析的事件。

NumberOfDisconnects

long

MySQL 连接器断开连接的数量。

NumberOfRolledBackTransactions

long

已回滚且未流传输的已处理事务的数量。

NumberOfNotWellFormedTransactions

long

未符合 BEGIN + COMMIT/ROLLBACK 的预期协议的事务数量。在正常情况下,这个值应该为 0

NumberOfLargeTransactions

long

不适用于 look-ahead 缓冲区的事务数量。为获得最佳性能,这个值应显著小于 NumberOfCommittedTransactionsNumberOfRolledBackTransactions

5.6.3. 监控 Debezium MySQL 连接器模式历史记录

MBeandebezium.mysql:type=connector-metrics,context=schema-history,server= <mysql.server.name>

下表列出了可用的模式历史记录指标。

属性类型描述

Status

字符串

STOPPED,RECOVERING (从存储中恢复历史记录)之一,RUNNING 描述数据库架构历史记录的状态。

RecoveryStartTime

long

恢复开始的时间(以 epoch 秒为单位)。

ChangesRecovered

long

恢复阶段读取的更改数量。

ChangesApplied

long

恢复和运行时应用的架构更改总数。

MilliSecondsSinceLast​RecoveredChange

long

从历史记录存储中恢复自上次更改以来的毫秒数。

MilliSecondsSinceLast​AppliedChange

long

从上次更改被应用后经过的毫秒数。

LastRecoveredChange

字符串

从历史记录存储中恢复最后一次更改的字符串表示。

LastAppliedChange

字符串

最后一次应用的更改的字符串表示。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.