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

相关推荐
zt1985q14 小时前
本地部署开源网络书签与内容管理工具 Karakeep 并实现外部访问
运维·服务器·网络·数据库·网络协议·开源
IvorySQL15 小时前
PostgreSQL 日报| PostgreSQL 19 默认 WAL 压缩算法(8 月 8 日)
数据库·postgresql·区块链
油丶酸萝卜别吃15 小时前
MySQL B+ 树查询全过程详解
数据库·mysql
leisoo809715 小时前
股票数据本地化存储实战:JSON、数据库与列式存储的方案对比
jvm·数据库·json
Exclusive_Cat15 小时前
MySQL回表机制解析与优化策略
数据库·sql
circuitsosk15 小时前
向量数据库选型与性能压测:Milvus、Pinecone、Chroma在真实业务下的对比
数据库·python·pinecone·milvus·向量数据库·chroma
影寂ldy16 小时前
SQL 索引(Index)完整笔记
数据库·笔记·sql
切糕师学AI16 小时前
从压缩到查询:PostgreSQL中JSON数据的存储与处理实践
数据库·postgresql·json
渣渣盟16 小时前
当 Redis 写入成为性能瓶颈时,如何利用 异步批量 Sink 将吞吐量从 1w QPS 提升到 10w+?
数据库·redis·php
SelectDB16 小时前
Apache Doris 2026 Roadmap:AI 成为主流负载后数据基础设施的演进方向
数据库