Debezium系列之:mysql JMX metrics指标详细解读
- 一、debezium监控指标
- 二、Snapshot metrics快照指标
- 三、Streaming metrics流指标
- 四、Schema history metrics架构历史指标
一、debezium监控指标
除了 Zookeeper、Kafka 和 Kafka Connect 提供的JMX 指标之外,Debezium MySQL 连接器还提供三种类型的指标。
- Snapshot metrics:在执行快照时提供有关连接器操作的信息。
- Streaming metrics:当连接器读取二进制日志时,提供有关连接器操作的信息。
- Schema history metrics:提供有关连接器模式历史状态的信息。
二、Snapshot metrics快照指标
除非快照操作处于活动状态,或者自上次连接器启动以来发生了快照,否则不会公开快照指标。
- MBean is debezium.mysql:type=connector-metrics,context=snapshot,server=<mysql.server.name>。
- 例如:debezium.mysql<type=connector-metrics, context=snapshot, server=debezium-optics_test1>
属性 | 类型 | 描述 | 实例 |
LastEvent(最后事件) | string | 连接器读取的最后一个快照事件。 | |
MilliSecondsSinceLastEvent(自上次事件以来的毫秒数) | long | 自连接器读取并处理最新事件以来的毫秒数。 | debezium_metrics_MilliSecondsSinceLastEvent{context=“snapshot”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} -1.0 |
TotalNumberOfEventsSeen(事件总数) | long | 此连接器自上次启动或重置以来看到的事件总数。 | debezium_metrics_TotalNumberOfEventsSeen{context=“snapshot”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
NumberOfEventsFiltered(过滤的事件数) | long | 已被连接器上配置的包含/排除列表过滤规则过滤的事件数。 | debezium_metrics_NumberOfEventsFiltered{context=“streaming”,name=“debezium-optics_test”,plugin=“mysql”,} 88.0 |
CapturedTables(捕获的表) | String[] | 连接器捕获的表列表。 | |
QueueTotalCapacity(队列总容量) | int | 用于在快照程序和 Kafka Connect 主循环之间传递事件的队列长度。 | debezium_metrics_QueueTotalCapacity{context=“snapshot”,name=“debezium-optics_test”,plugin=“mysql”,} 8192.0 |
QueueRemainingCapacity(队列剩余容量) | int | 用于在快照程序和 Kafka Connect 主循环之间传递事件的队列的可用容量 | debezium_metrics_QueueRemainingCapacity{context=“snapshot”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 8172.0 |
TotalTableCount(总表数) | int | 快照中包含的表总数。 | debezium_metrics_TotalTableCount{context=“snapshot”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 21.0 |
RemainingTableCount(剩余表数) | int | 快照尚未复制的表数。 | debezium_metrics_RemainingTableCount{context=“snapshot”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 0.0 |
SnapshotRunning(快照运行) | boolean | 快照是否已启动。 | debezium_metrics_SnapshotRunning{context=“snapshot”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 0.0 |
SnapshotAborted(快照中止) | boolean | 快照是否中止。 | debezium_metrics_SnapshotAborted{context=“snapshot”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 0.0 |
SnapshotCompleted(快照完成) | boolean | 快照是否完成。 | debezium_metrics_SnapshotCompleted{context=“snapshot”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 1.0 |
SnapshotDurationInSeconds(快照持续时间(以秒为单位)) | long | 到目前为止快照所用的总秒数,即使未完成也是如此。 | debezium_metrics_SnapshotDurationInSeconds{context=“snapshot”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 29414.0 |
RowsScanned(行扫描) | Map<String, Long> | 快照中包含每个表扫描的行数的映射。在处理过程中,表会逐渐添加到 Map 中。每扫描 10,000 行和完成表格时更新。 | debezium_metrics_RowsScanned{context=“snapshot”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,table=“optics.user”,} 6180233.0 |
MaxQueueSizeInBytes(最大队列大小字节) | long | 队列的最大缓冲区(以字节为单位)。如果 max.queue.size.in.bytes 以正长值传递,它将被启用。 | debezium_metrics_MaxQueueSizeInBytes{context=“streaming”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 0.0 |
CurrentQueueSizeInBytes(当前队列大小字节) | long | 队列中记录的当前数据(以字节为单位)。 | debezium_metrics_CurrentQueueSizeInBytes{context=“streaming”,name=“debezium-mysql-optics-prod”,plugin=“mysql”,} 0.0 |
执行增量快照时,连接器还提供以下附加快照指标:
属性 | 类型 | 描述 | 实例 |
ChunkId | String | 当前快照块的标识符。 | |
ChunkFrom | string | 定义当前块的主键集的下限。 | |
ChunkTo | string | 定义当前块的主键集的上限。 | |
TableFrom | string | 当前快照表的主键集的下限。 | |
TableTo | string | 当前快照表的主键集的上限。 |
Debezium MySQL 连接器还提供了 HoldingGlobalLock 自定义快照指标。此指标设置为布尔值,指示连接器当前是否持有全局或表写锁。
三、Streaming metrics流指标
事务相关的属性只有在启用 binlog 事件缓冲时才可用。
- MBean is debezium.mysql:type=connector-metrics,context=streaming,server=<mysql.server.name>.
- 例如:debezium.mysql<type=connector-metrics, context=streaming, server=debezium-mysql-optics-prod>
属性 | 类型 | 描述 | 实例 |
LastEvent(最后事件) | string | 连接器读取的最后一个流事件。 | |
MilliSecondsSinceLastEvent(自上次事件以来的毫秒数) | long | 自连接器读取并处理最新事件以来的毫秒数。 | debezium_metrics_MilliSecondsSinceLastEvent{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 13000.0 |
TotalNumberOfEventsSeen(事件总数) | long | 此连接器自上次启动或重置以来看到的事件总数。 | debezium_metrics_TotalNumberOfEventsSeen{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 260644.0 |
NumberOfEventsFiltered(过滤的事件数) | long | 已被连接器上配置的包含/排除列表过滤规则过滤的事件数。 | debezium_metrics_NumberOfEventsFiltered{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 16816.0 |
CapturedTables(捕获的表) | String[] | 连接器捕获的表列表。 | |
QueueTotalCapacity(队列总容量) | int | 用于在快照程序和 Kafka Connect 主循环之间传递事件的队列长度。 | debezium_metrics_QueueTotalCapacity{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 8192.0 |
QueueRemainingCapacity(队列剩余容量) | int | 用于在快照程序和 Kafka Connect 主循环之间传递事件的队列的可用容量 | debezium_metrics_QueueRemainingCapacity{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 8192.0 |
Connected | boolean | 表示连接器当前是否连接到数据库服务器的标志。 | debezium_metrics_Connected{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 1.0 |
MilliSecondsBehindSource(落后事件源的毫秒数) | long | 最后更改事件的时间戳和连接器处理该事件之间的毫秒数。 这些值将包含运行数据库服务器和连接器的机器上的时钟之间的任何差异。 | debezium_metrics_MilliSecondsBehindSource{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 951.0 |
NumberOfCommittedTransactions(已提交事务数) | long | 已提交的已处理事务数。 | debezium_metrics_NumberOfCommittedTransactions{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
SourceEventPosition(源事件位置) | Map<String, String> | 最后接收到的事件的坐标。 | |
LastTransactionId(最后事务编号) | string | 最后处理的事务的事务标识符。 | |
MaxQueueSizeInBytes(最大队列大小字节) | long | 队列的最大缓冲区(以字节为单位)。如果 max.queue.size.in.bytes 以正长值传递,它将被启用。 | debezium_metrics_MaxQueueSizeInBytes{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
CurrentQueueSizeInBytes(当前队列大小字节) | long | 队列中记录的当前数据(以字节为单位)。 | debezium_metrics_CurrentQueueSizeInBytes{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
Debezium MySQL 连接器还提供以下额外的流指标:
属性 | 类型 | 描述 | 实例 |
BinlogFilename(二进制日志文件名) | string | 连接器最近读取的二进制日志文件的名称。 | |
BinlogPosition(二进制日志位置) | long | 连接器读取的二进制日志中的最新位置(以字节为单位)。 | debezium_metrics_BinlogPosition{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 16193.0 |
IsGtidModeEnabled(IsGtidMode 已启用) | boolean | 表示连接器当前是否正在跟踪 MySQL 服务器的 GTID 的标志。 | debezium_metrics_IsGtidModeEnabled{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
GtidSet | string | 连接器在读取 binlog 时处理的最新 GTID 集的字符串表示形式。 | |
NumberOfSkippedEvents(跳过的事件数) | long | MySQL 连接器已跳过的事件数。 通常,由于 MySQL 二进制日志中的错误格式或无法解析的事件,会跳过事件。 | debezium_metrics_NumberOfSkippedEvents{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
NumberOfDisconnects(断开连接数) | long | MySQL 连接器断开连接的次数 | debezium_metrics_NumberOfDisconnects{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
NumberOfRolledBackTransactions(回滚事务数) | long | 已回滚且未流式传输的已处理事务数。 | debezium_metrics_NumberOfRolledBackTransactions{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
NumberOfNotWellFormedTransactions(格式不正确的事务数) | long | 不符合预期的 BEGIN + COMMIT/ROLLBACK 协议的事务数。 在正常情况下,该值应为 0。 | debezium_metrics_NumberOfNotWellFormedTransactions{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
NumberOfLargeTransactions(大的事物数) | long | 未装入前瞻缓冲区的事务数。 为获得最佳性能,该值应明显小于 NumberOfCommittedTransactions 和 NumberOfRolledBackTransactions。 | debezium_metrics_NumberOfLargeTransactions{context=“streaming”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 0.0 |
四、Schema history metrics架构历史指标
- MBean is debezium.mysql:type=connector-metrics,context=schema-history,server=<mysql.server.name>.
属性 | 类型 | 描述 | 实例 |
status | string | STOPPED、RECOVERING(从存储中恢复历史)、RUNNING 之一,描述数据库历史的状态。 | |
RecoveryStartTime(恢复开始时间) | long | 恢复开始的时间(以秒为单位)。 | debezium_metrics_RecoveryStartTime{context=“schema-history”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 1.64094041E9 |
ChangesRecovered(恢复的变化) | long | 在恢复阶段读取的更改数。 | debezium_metrics_ChangesRecovered{context=“schema-history”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 4006.0 |
ChangesApplied(已应用更改) | long | 在恢复和运行期间应用的架构更改总数。 | debezium_metrics_ChangesApplied{context=“schema-history”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 61437.0 |
MilliSecondsSinceLastRecoveredChange(自上次恢复更改后的毫秒数) | long | 从历史存储中恢复自上次更改以来经过的毫秒数。 | debezium_metrics_MilliSecondsSinceLastRecoveredChange{context=“schema-history”,name=“debezium-optics_1h”,plugin=“mysql”,} 3.68104774E8 |
MilliSecondsSinceLastAppliedChange | long | 自上次应用更改后经过的毫秒数。 | debezium_metrics_MilliSecondsSinceLastAppliedChange{context=“schema-history”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 39941.0 |
LastRecoveredChange(最后恢复的更改) | string | 从历史存储中恢复的最后更改的字符串表示形式。 | debezium_metrics_MilliSecondsSinceLastRecoveredChange{context=“schema-history”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 3.68104774E8 |
LastAppliedChange | string | 上次应用更改的字符串表示形式。 | debezium_metrics_MilliSecondsSinceLastAppliedChange{context=“schema-history”,name=“debezium-stg-optics_1h”,plugin=“mysql”,} 39941.0 |