欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

Mysql-exporter监控指标详解

2025年07月10日 Mysql
mysql监控指标1、mysql监控agent存活promql语句:mysql_up{job=~".*mysql"} == 0说明:检测mysql监控agent是否存活、或者是mysql服务是否挂掉2

mysql监控指标

1、mysql监控agent存活

  • promql语句:
mysql_up{job=~".*mysql"} == 0
  • 说明:

检测mysql监控agent是否存活、或者是mysql服务是否挂掉

2、mysql监控连接数

  • promql语句:
mysql_global_status_max_used_connections{job=~".*mysql"} > mysql_global_variables_max_connections{job=~".*mysql"}*0.75
  • 说明:

如果mysql连接数超过75%就发出告警信息

3、mysql监控文件打开数

  • promql语句:
mysql_global_status_innodb_num_open_files{job=~".*mysql"} > (mysql_global_variables_open_files_limit{job=~".*mysql"}) * 0.75
  • 说明:

如果mysql文件打开数超过75%就发出告警信息

4、mysql监控从库只读

  • promql语句:
mysql_global_variables_read_only{job=~".*mysql"} != 0
  • 说明:

如果mysql从库不是只读模式就告警

5、mysql监控主从延迟

  • promql语句:
rate(mysql_slave_status_seconds_behind_master{job=~".*mysql"}[5m]) > 30
  • 说明:

如果mysql主从延迟就告警

6、mysql监控sql线程

  • promql语句:
mysql_slave_status_slave_sql_running != 1
  • 说明:

如果mysqlsql线程已停止就告警

7、mysql监控io线程

  • promql语句:
mysql_slave_status_slave_io_running != 1
  • 说明:

mysql监控io线程已停止就告警

8、mysql监控入口流量

  • promql语句:
round(rate(mysql_global_status_bytes_received{job=~".*mysql"}[5m]) /1024*100)/100
  • 说明:

mysql监控入口流量单位是kb,如果大于1024就告警

9、mysql监控出口流量

  • promql语句:
round(rate(mysql_global_status_bytes_sent{job=~".*mysql"}[5m]) /1024*100)/100
  • 说明:

mysql监控入口流量单位是kb,如果大于1024就告警

10、mysql监控写操作速率

  • promql语句:
sum(rate(mysql_global_status_commands_total{command=~"insert|update|delete",job=~".*mysql"}[5m])) without (command)
  • 说明:

mysql监控写操作速率,如果大于100就告警

11、mysql监控性能状态

  • promql语句:
rate(mysql_global_status_slow_queries{job=~".*mysql"}[5m])
  • 说明:

mysql监控性能状态,如果大于10就告警

12、mysql监控查询速率

  • promql语句:
rate(mysql_global_status_questions{job=~".*mysql"}[5m])
  • 说明:

mysql监控查询速率,如果大于500就告警

13、mysql可用连接数

  • promql语句:
mysql_global_variables_max_connections{job=~".*mysql"} - mysql_global_status_threads_connected{job=~".*mysql"}
  • 说明:

mysql可用连接数,如果如果小于500就告警

14、mysql缓冲池利用率

  • promql语句:
round((sum(mysql_global_status_buffer_pool_pages) by (job) - sum(mysql_global_status_buffer_pool_pages{state="free"}) by (job)) / sum(mysql_global_status_buffer_pool_pages) by (job) *100)
  • 说明:

mysql可用连接数,大于80%就告警

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。