MySQL Exporter采集的关键指标有哪些,如何解读这些指标?

MySQL Exporter 是 Prometheus 生态中用于监控 MySQL 数据库的核心工具,通过采集丰富的性能指标帮助用户分析数据库运行状态。以下是其关键指标分类及解读方法:


一、核心指标分类与解读

1. ​数据库可用性与基础状态​

  • ​**mysql_up**​

    值为 1表示 MySQL 实例正常运行,0表示不可用。用于快速判断数据库是否存活。

  • ​**mysql_global_status_uptime**​

    数据库已运行时间(秒)。若突然归零可能表示实例重启,需结合告警规则监控异常重启。

2. ​连接与线程​

  • ​**mysql_global_status_threads_connected**​

    当前活跃连接数。若接近 mysql_global_variables_max_connections(最大连接数),可能触发连接拒绝,需优化连接池或扩容。

  • ​**mysql_global_status_threads_running**​

    正在执行查询的线程数。持续高位可能表明查询阻塞或锁竞争。

  • ​**mysql_global_status_aborted_connects**​

    连接失败次数。突增可能由网络问题或认证错误引起。

3. ​查询性能​

  • ​**mysql_global_status_queries**​

    服务器执行的查询总数。通过 PromQL rate(mysql_global_status_queries[5m])计算 QPS,反映数据库负载。

  • ​**mysql_global_status_slow_queries**​

    慢查询数量。需结合 long_query_time配置,突增时使用 pt-query-digest分析具体 SQL。

  • ​**mysql_global_status_select_scan**​

    全表扫描次数。高值提示索引缺失或优化器选择不当。

4. ​InnoDB 存储引擎​

  • ​缓冲池指标​

    • mysql_global_status_innodb_buffer_pool_read_requests(读请求数)

    • mysql_global_status_innodb_buffer_pool_reads(从磁盘读取次数)

      ​命中率公式 ​:(1 - reads/requests) * 100。低于 95% 需扩大缓冲池或优化查询。

  • ​锁竞争​

    • mysql_global_status_innodb_row_lock_waits(行锁等待次数)

    • mysql_global_status_innodb_row_lock_time_avg(平均等待时间)

      高值表明事务并发冲突,需优化事务隔离级别或拆分热点数据。

5. ​复制状态(主从架构)​​

  • ​**mysql_slave_status_seconds_behind_master**​

    从库复制延迟(秒)。非零值需检查网络或主库写入压力。

  • ​**mysql_slave_status_slave_io_running**​

    I/O 线程状态。0表示复制中断,需检查主从配置。

6. ​资源使用​

  • ​流量​

    mysql_global_status_bytes_received(入站)和 mysql_global_status_bytes_sent(出站)。突增可能由大查询或数据导出引起。

  • ​文件描述符​

    mysql_global_status_open_files与 mysql_global_variables_open_files_limit对比,接近上限需调整配置。


二、关键计算指标(PromQL 示例)

  1. ​QPS 计算​

    scss 复制代码
    rate(mysql_global_status_queries[1m])
  2. ​缓冲池命中率​

    scss 复制代码
    (1 - rate(mysql_global_status_innodb_buffer_pool_reads[5m]) / rate(mysql_global_status_innodb_buffer_pool_read_requests[5m])) * 100
  3. ​连接使用率​

    复制代码
    mysql_global_status_threads_connected / mysql_global_variables_max_connections * 100

三、实战应用场景

  1. ​性能瓶颈定位​

    • 高 QPS 但低缓冲池命中率 → 优化查询或扩容缓冲池。
    • 慢查询突增 → 使用 pt-query-digest分析日志并优化索引。
  2. ​容量规划​

    • 连接数持续接近上限 → 调整 max_connections或引入读写分离。
  3. ​复制监控​

    • 延迟持续增长 → 检查从库 I/O 线程或主库写入批量。

四、指标采集注意事项

  1. ​权限配置​

    Exporter 需 MySQL 用户授予 SELECT(performance_schema、information_schema)、PROCESS和 REPLICATION CLIENT权限。

  2. ​安全优化​

    • 限制 Exporter 监听 IP,避免暴露 9104端口到公网。
    • 使用专用监控用户并定期轮换密码。

通过以上指标,可全面监控 MySQL 的健康状态,结合 Grafana 仪表盘(如模板 ID 7362)实现可视化,并通过 Prometheus Alertmanager 设置阈值告警。

相关推荐
WikiLeake2 分钟前
一个健壮且灵活的大语言模型(LLM)API 配置加载器
数据库·人工智能
瑞克-桑切斯2 小时前
企业生产环境:https部署+nginx高可用(业务不中断)
linux·服务器·数据库
zyseo810 小时前
谷歌SEO 准首页词挖掘脚本:找出排在第 8-20 名的隐藏流量
大数据·数据库·人工智能
xiaogai_gai12 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
数据工匠老o12 小时前
异构数据库DDL同步:260条链路的结构变更自动适配方案
数据库·架构
这个DBA有点耶13 小时前
银行业市占率最高的国产数据库是谁?先搞清楚“市占率”的四种口径
数据库·程序员·架构
用户62799471826214 小时前
南大通用GBase 8a之基于审计日志的冷温热数据分析
数据库
数据库小学妹14 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
一个天蝎座的程序猿14 小时前
为了给报表提速,我把金仓KES的列存储折腾了个遍:聊聊KES的技术能力
数据库
飞越未来云城的霓虹飞猪14 小时前
AI 数据库地图:从 PostgreSQL 到向量数据库,一次看懂 AI 时代的数据底座
数据库