CDC 与同步53 条

Debezium 监控指标

Debezium 通过 Kafka Connect 暴露指标:MilliSecondsBehindSource 反映事件时间与处理时间的滞后,TotalNumberOfEventsSeen 统计事件总量,另有过滤与队列类指标。配合 JMX 或指标采集系统,对滞后持续上升、事件速率骤降设告警。

Debezium 监控指标是什么

Debezium 以 Kafka Connect 连接器的形式运行,指标通过 Connect 的 JMX 暴露:MilliSecondsBehindSource 反映事件时间与当前处理时间之间的滞后,TotalNumberOfEventsSeen 统计已处理事件总量,NumberOfEventsFiltered 反映过滤规则命中的情况。监控的重点是滞后持续上升与事件速率骤降这两类信号——它们分别对应「追不上」与「链路断了」,而不是简单的任务是否在运行。

基本信息

MilliSecondsBehindSource源端事件时间到当前处理时刻的滞后毫秒数
TotalNumberOfEventsSeen连接器累计处理的事件数
NumberOfEventsFiltered被过滤掉的事件数,用于确认白名单是否按预期生效
暴露方式Kafka Connect 的 JMX 指标,按 connector 维度区分
采集方式JMX 抓取或指标导出后接入监控系统
版本差异指标名与可用性随连接器版本略有差异,接入前先确认指标存在

典型使用场景

  • 滞后告警:滞后持续上升说明消费追不上写入,需要扩容或优化
  • 链路存活检查:事件数长时间不增长,说明源端无变更或链路已断
  • 过滤规则验证:过滤计数变化可确认白名单调整是否生效
  • 容量评估:结合事件速率与滞后判断是否需要增加任务实例
  • 故障复盘:用滞后曲线与事件速率曲线还原故障发生与恢复时刻

用 JMX 工具查看连接器指标

用 JMX 工具查看连接器指标
# 连接器维度的指标:关注滞后与累计事件数
kafka-run-class.sh kafka.tools.JmxTool \
  --object-name kafka.connect:type=connector-metrics,connector=mysql-cdc-orders

# 任务维度的指标:定位是哪个任务(分区级)出现滞后
kafka-run-class.sh kafka.tools.JmxTool \
  --object-name kafka.connect:type=connector-task-metrics,connector=mysql-cdc-orders,task=0

指标读法

指标含义异常提示
MilliSecondsBehindSource处理进度落后源端的毫秒数持续上升说明追不上写入,需扩容或排查下游
TotalNumberOfEventsSeen累计处理事件数长时间不变说明源端无变更或链路中断
NumberOfEventsFiltered被过滤的事件数与预期不符说明过滤规则配置有误
任务级滞后单个任务的进度仅个别任务滞后,通常是分区倾斜
只看 Kafka 消费位移滞后(lag)是不够的:它反映的是消息积压,而 MilliSecondsBehindSource 反映的是数据从发生到现在的时间差,后者才更接近业务真正感知的数据延迟。
告警不要只按平均值阈值:短时毛刺会掩盖持续的大延迟,用持续时长条件(如连续 10 分钟超阈值)或分位数更贴近真实影响。

易错点

  • 只看消息积压不看源端时间滞后,真实数据延迟被低估
  • 告警只按平均值,短时毛刺掩盖持续大延迟,问题被放过
  • 指标名随版本变化未核对,监控面板长期显示无数据却无人发现
  • 只监控连接器整体状态,不监控单个任务,分区倾斜导致部分数据延迟
  • 忽略过滤计数,白名单配错后大量表未被采集且无任何告警

数据来源与参考

  • Kafka Connect 官方文档(JMX metrics)
  • Debezium 官方文档(Monitoring)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌