mysqlrouter_exporter 项目简介

mysqlrouter_exporter 是一个面向 MySQL Router 的产品化 Prometheus exporter。它已经从 dbbot 主仓拆分为独立项目,但继续兼容 dbbot 现有的 YAML 配置格式、安装变量和服务启动方式。

1. 它解决什么问题

这个项目适合下面几类场景:

  • 只想采集 MySQL Router 指标,不想依赖完整的 dbbot 源码树
  • 希望让 Router exporter 按自己的节奏独立发版和升级
  • 已有 Prometheus 环境,但监控接入不一定通过 dbbot 全量交付
  • 想继续复用 dbbot 已经约定好的配置格式和变量命名

2. 它采集什么

独立项目关注的是 MySQL Router 运行态和接入层可观测性:

  • Router 可用性和抓取健康状态
  • Router 构建信息和启动时间
  • 每条路由的活跃连接数、总连接数、阻塞主机数、健康状态和目的端
  • 元数据刷新计数器和最近一次刷新端点信息
  • 可选的路由连接字节计数
  • 通过解析 mysqlrouter.conf 执行本地监听端口检查

这个实现最值得关注的差异点就是 listener check。它不只依赖 Router REST API 返回的数据,还会额外验证 mysqlrouter.conf 里声明的监听地址是否真的在接收 TCP 连接。

3. 和 dbbot 的关系

dbbot 仍然保留了 Router 指标的一体化交付路径:

  • router_exporter_install.yml 继续作为标准 playbook 入口
  • mysqlrouter_exporter_install_type: dbbot 使用 dbbot 发行包内置的兼容二进制
  • mysqlrouter_exporter_install_type: package 从上游 GitHub 仓库下载独立 release 包
  • Router 目标注册仍然通过 dbbotctl exporter register -t router

也就是说,这个项目已经独立发版,但 dbbot 用户原有的一体化使用路径并没有丢。

4. 独立使用方式

在脱离 dbbot 的场景下,这个项目默认按一套比较明确的生产布局运行:

  • 二进制:/usr/local/bin/mysqlrouter_exporter
  • 配置文件:/etc/mysqlrouter_exporter/config.yml
  • 密码文件:/etc/mysqlrouter_exporter/router_api_password
  • systemd 服务名:mysqlrouter_exporter

它支持三种输入方式:

  • 兼容旧版的 YAML 配置
  • 环境变量
  • 命令行参数

这意味着它既适合直接安装到目标主机,也适合接入已有的 systemd 监控环境,或者在 dbbot 之外单独锁定 release 版本。

5. 上游入口与相关文档