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

吾爱主题 阅读:261 2024-04-05 16:21:08 评论:0

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

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:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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上面绘制图,如下:

到此这篇关于使用prometheus统计MySQL自增主键的剩余可用百分比的文章就介绍到这了,更多相关prometheus统计MySQL自增主键内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/lee90/2427912

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容