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 设置阈值告警。

相关推荐
weixin_446260852 小时前
Django - 让开发变得简单高效的Web框架
前端·数据库·django
mpHH3 小时前
babelfish for postgresql 分析--todo
数据库·postgresql
zizisuo3 小时前
解决在使用Lombok时maven install 找不到符号的问题
java·数据库·maven
程序边界4 小时前
国产之光!金仓数据库KingbaseES Oracle兼容性深度体验大赏
数据库·oracle
A阳俊yi4 小时前
Spring——声明式事务
java·数据库·spring
A阳俊yi4 小时前
Spring——编程式事务
数据库·sql·spring
编程充电站pro5 小时前
SQL 多表查询常用语法速查:INNER JOIN / LEFT JOIN / RIGHT JOIN
数据库·sql
杨云龙UP5 小时前
SQL Server数据库事务日志问题的诊断与解法(从膨胀到瘦身)
运维·数据库·sql·sqlserver·serverless
周杰伦的稻香6 小时前
MySQL5.7.44编译安装
数据库·mysql