You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按源表拆分Debezium Postgres Connector的监控指标?

解决Debezium Postgres Connector JMX监控添加Table标签的问题

你的问题核心是Debezium针对不同类型指标的MBean属性结构不一致:扫描类指标(如RowsScanned)用key字段存储表名,而事件计数类指标(如TotalNumberOfCreateEventsSeen)直接将表名放在table属性中,现有JMX Exporter规则没有覆盖后者的匹配逻辑。

只需调整config.yml的规则顺序和匹配模式,就能为这类事件指标添加table标签,修改后的配置如下:

startDelaySeconds: 0
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
rules:
- pattern : "kafka.connect<type=connect-worker-metrics>([^:]+):"
  name: "kafka_connect_worker_metrics_$1"
- pattern : "kafka.connect<type=connect-metrics, client-id=([^:]+)><>([^:]+)"
  name: "kafka_connect_metrics_$2"
  labels:
    client: "$1"
# 新增规则:匹配带有table属性的事件类指标
- pattern: "debezium.([^:]+)<type=connector-metrics, context=([^,]+), server=([^,]+), table=([^>]+)><>([^:]+)"
  name: "debezium_metrics_$5"
  labels:
    plugin: "$1"
    name: "$3"
    context: "$2"
    table: "$4"
# 原有RowsScanned指标规则
- pattern: "debezium.([^:]+)<type=connector-metrics, context=([^,]+), server=([^,]+), key=([^>]+)><>RowsScanned"
  name: "debezium_metrics_RowsScanned"
  labels:
    plugin: "$1"
    name: "$3"
    context: "$2"
    table: "$4"
# 通用规则:匹配不带table/key属性的全局指标
- pattern: "debezium.([^:]+)<type=connector-metrics, context=([^,]+), server=([^>]+)>([^:]+)"
  name: "debezium_metrics_$4"
  labels:
    plugin: "$1"
    name: "$3"
    context: "$2"

配置说明:

  • 新增规则优先级最高:先匹配带有table属性的MBean,确保TotalNumberOfCreateEventsSeen这类事件指标能提取到表名标签。
  • 保留原有RowsScanned规则:针对扫描类指标的key字段做专门匹配,保证兼容性。
  • 通用规则放在最后:处理那些不关联具体表的全局指标(如连接器整体的吞吐量、延迟等)。

修改后重启Debezium Connect容器,就能看到事件类指标带上对应的table标签了。

内容的提问来源于stack exchange,提问作者Sergey Che

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 13:24:21