最近生產環境一套數據庫因為瘋狂寫日志數據,造成主鍵值溢出的情況出現,因此有必要將這個指標監控起來。
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上面繪制圖,如下:

到此這篇關于使用prometheus統計MySQL自增主鍵的剩余可用百分比的文章就介紹到這了,更多相關prometheus統計MySQL自增主鍵內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 使用Grafana+Prometheus監控mysql服務性能
- 利用Prometheus與Grafana對Mysql服務器的性能監控詳解
- SpringBoot使用prometheus監控的示例代碼
- springboot2.X整合prometheus監控的實例講解
- SpringBoot+Prometheus+Grafana實現應用監控和報警的詳細步驟
- Prometheus的安裝和配置教程詳解
- Prometheus 入門教程之SpringBoot 實現自定義指標監控
- Prometheus開發中間件Exporter過程詳解
- springboot集成普羅米修斯(Prometheus)的方法
- 使用 prometheus python 庫編寫自定義指標的方法(完整代碼)
- 使用Prometheus+Grafana的方法監控Springboot應用教程詳解
- Prometheus 監控MySQL使用grafana展示