欢迎来到代码驿站!

Mysql

当前位置:首页 > 数据库 > Mysql

使用prometheus统计MySQL自增主键的剩余可用百分比

时间:2021-07-17 08:09:45|栏目:Mysql|点击:

最近生产环境一套数据库因为疯狂写日志数据,造成主键值溢出的情况出现,因此有必要将这个指标监控起来。

mysqld_exporter自带的这个功能,下面是我使用的启动参数:

nohup ./mysqld_exporter --config.my-cnf="./my.cnf" --web.listen-address=":9104" --collect.heartbeat --collect.auto_increment.columns --collect.binlog_size --collect.engine_innodb_status --collect.engine_tokudb_status --collect.slave_hosts --collect.slave_status --collect.info_schema.processlist --collect.info_schema.innodb_metrics > /dev/null 2>&1 & 

红色高亮的参数,就是用来采集到自增id的使用情况的。

实际上执行的类似这个SQL:

SELECT 
 table_schema,
 table_name,
 column_name,
 AUTO_INCREMENT,
 POW(2, CASE data_type
   WHEN 'tinyint'  THEN 7
   WHEN 'smallint' THEN 15
   WHEN 'mediumint' THEN 23
   WHEN 'int'    THEN 31
   WHEN 'bigint'  THEN 63
   END+(column_type LIKE '% unsigned'))-1 AS max_int 
  FROM information_schema.tables t
   JOIN information_schema.columns c USING (table_schema,table_name)
  WHERE
   c.extra = 'auto_increment' 
  AND
   t.TABLE_SCHEMA NOT IN ('information_schema','mysql', 'sys','test','performance_schema') 
  AND
   t.auto_increment IS NOT NULL ;

在prometheus的web界面,我们可以测试编写如下的promql, 找出剩余自增id可以率少于40%的实例的库+表名

(mysql_info_schema_auto_increment_column_max{schema!~'test|mysql'} - mysql_info_schema_auto_increment_column{schema!~'test|mysql'})/mysql_info_schema_auto_increment_column_max{schema!~'test|mysql'}*100 < 40

取到数据后,我们可以在alertmanager里面配置相关的告警,或者再grafana上面绘制图,如下:

上一篇:mysql中find_in_set()函数的使用详解

栏    目:Mysql

下一篇:MYSQL表优化方法小结 讲的挺全面

本文标题:使用prometheus统计MySQL自增主键的剩余可用百分比

本文地址:http://www.codeinn.net/misctech/158307.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有