dm 状态刷新


请问dm程序里的syncerBinlog状态怎么能实时刷新,现在要很久才能刷新一次对查看数据延迟情况很不友好

  1. query status 看到的 sync binlog 实际上是从 checkpoint 表读取的,这个表记录的 flushed binlog position 只有 dml 的情况下默认超过 30s 才更新,实际同步的位置可能已经是最新了

  2. 目前如果要准确监控同步延迟,在 DM 上游连接 mysql 主库的情况下,可以开启 heartbeat,参考 https://pingcap.com/docs-cn/tidb-data-migration/stable/glossary/#heartbeat

  3. 关于刷新 checkpoint 机制后续版本相关 pr 会做改进 https://github.com/pingcap/dm/pull/605

设置了heartbeat之后似乎也是30s才更新

heartbeat配置如下:

开启 heartbeat 后,不会影响到 query-status 这里的状态,需要通过 binlog replication 中的 replicate lag 监控复制延迟

我们这边用的是二进制文件的dm程序,没有监控,问题有两个:

1、在二进制程序环境中,有没有方法打通dm到grafana的监控

2、在二进制程序环境中,有没有参数可以实现syncerBinlog的实时更新或者每秒更新也行

  1. 监控需要另外安装 prometheus,并通过 dm 的 status port 采集 metric 数据,还需要安装 grafana 配置 prometheus 作为 datasource

  2. 目前没有参数实现 syncerBinlog 的实时更新

现在tidb集群已经有一套 prometheus、grafana了,dm的监控能不能打通到现有的tidbgrafana上

可以的,论坛里也有分享 TiUP 和DM 监控集成 供参考