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_filesmysql_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 用户授予 SELECTperformance_schemainformation_schema)、PROCESSREPLICATION CLIENT权限。

  2. 安全优化

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

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

相关推荐
程序员小白条1 小时前
你面试时吹过最大的牛是什么?
java·开发语言·数据库·阿里云·面试·职场和发展·毕设
老华带你飞1 小时前
社区养老保障|智慧养老|基于springboot+小程序社区养老保障系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·社区养老保障
Coding_Doggy2 小时前
链盾shieldchiain | 团队功能、邀请成员、权限修改、移除成员、SpringSecurity、RBAC权限控制
java·开发语言·数据库
凯子坚持 c2 小时前
不用复杂配置!本地 Chat2DB 秒变远程可用,跨网操作数据库就这么简单
数据库
q***65692 小时前
Windows环境下安装Redis并设置Redis开机自启
数据库·windows·redis
q***96582 小时前
Windows版Redis本地后台启动
数据库·windows·redis
q***81642 小时前
【Redis】centos7 systemctl 启动 Redis 失败
数据库·redis·缓存
q***09802 小时前
MySQL 常用 SQL 语句大全
数据库·sql·mysql
q***64972 小时前
VS与SQL Sever(C语言操作数据库)
c语言·数据库·sql