Prometheus を使用して、MySQL の自動増分主キーの残りの使用可能パーセンテージをカウントします。

Prometheus を使用して、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 は次のようになります。

選択 
 テーブルスキーマ、
 テーブル名、
 列名、
 AUTO_INCREMENT、
 POW(2, CASE データ型
   'tinyint' の場合 7
   'smallint' の場合 15
   'mediumint' の場合 23
   'int' の場合 31
   'bigint' の場合 63
   END+(column_type LIKE '% unsigned'))-1 AS max_int 
  information_schema.tables t から
   information_schema.columns c USING (table_schema,table_name) を結合します。
  どこ
   c.extra = 'auto_increment' 
  そして
   t.TABLE_SCHEMA が ('information_schema'、'mysql'、'sys'、'test'、'performance_schema') にありません 
  そして
   t.auto_increment は 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 自動増分主キーの残りの使用可能パーセンテージをカウントする方法についての説明は終わりです。MySQL 自動増分主キーに関するより関連性の高い Prometheus 統計については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Grafana+Prometheus を使用して MySQL サービスのパフォーマンスを監視する
  • PrometheusとGrafanaを使用したMySQLサーバーのパフォーマンス監視の詳細な説明
  • Prometheus モニタリングを使用した SpringBoot サンプル コード
  • Prometheus モニタリングを springboot2.X と統合する例
  • SpringBoot+Prometheus+Grafanaでアプリケーション監視とアラームを実装するための詳細な手順
  • Prometheusの詳細なインストールと設定のチュートリアル
  • Prometheus 入門チュートリアル: SpringBoot によるカスタム メトリック監視の実装
  • Prometheus におけるミドルウェア エクスポーターの開発プロセスの詳細な説明
  • Prometheus を Springboot と統合する方法
  • Prometheus Python ライブラリを使用してカスタム インジケーターを作成する方法 (完全なコード)
  • Prometheus+Grafana を使用した Springboot アプリケーションの監視に関するチュートリアルの詳細な説明
  • PrometheusはGrafanaディスプレイを使用してMySQLを監視します

<<:  JavaScript フレームワーク デザイン パターンの詳細な説明

>>:  Node.js のモジュール性、npm パッケージ マネージャーの説明

推薦する

Linuxにpipパッケージをインストールする方法

1. システムの Python バージョンに応じて、pip インストール パッケージをダウンロードし...

Node.js ファイルのコピー、フォルダの作成、その他の関連操作

NodeJS は次のファイルをコピーします:通常、小さなファイルのコピー操作では、ストリーム パイプ...

JavaScriptは入力ボックスコンポーネントを実装します

この記事では、入力ボックスコンポーネントを手動で実装するための具体的なコードを参考までに紹介します。...

ランダム点呼 Web ページを実装するための JavaScript

JavaScriptは、参考のためにランダムな点呼Webページを作成します。具体的な内容は次のとお...

Vueがsweetalert2プロンプトコンポーネントを統合する際の問題についてお話ししましょう

目次1. プロジェクト統合1. CDNインポート方法: 2. 箱の梱包を確認する3. 迅速な箱詰め4...

jQueryは、マウスをドラッグしてdivの位置とサイズを変更する方法を実装しています。

Windows フォームと同様の効果を得るには、中央をドラッグして div の位置を変更し、端をド...

Baidu百科事典UIの開発動向について議論する

<br />百度百科事典の正式版がついにオンラインになりました。2年間の「テスト版」の帽...

Sublime / vscode による HTML コード生成の迅速な実装

目次基本的なHTML構造div とクラス名のショートカット キーを生成するクラス名を持つdiv ID...

Vueのカスタムディレクティブの詳細なガイド

目次1. カスタム指示とは何ですか? 2. 指示をカスタマイズする方法フック機能3. 応用シナリオ入...

Linux での wget コマンドの基本的な使い方

目次序文1. wgetを使用して単一のファイルをダウンロードする2. wget -Oを使用してダウン...

Nginx は gzip 圧縮に基づいてアクセス速度を向上します

1. nginx はなぜ gzip を使用するのですか? 1. 圧縮の役割:ページがgzipで圧縮さ...

MySQL 5.7.17無料インストール版のインストールと設定

MYSQLバージョン:MySQL Community Server 5.7.17、インストール不要版...

MySQL はエンタープライズレベルのログ管理、バックアップ、リカバリの実践的なチュートリアルを実装します

背景事業が発展するにつれ、会社の事業内容や規模は拡大し続け、ウェブサイトには大量のユーザー情報やデー...

CocosCreator スケルトンアニメーション ドラゴンボーン

CocosCreator バージョン 2.3.4ドラゴンボーンアニメーションキールアニメーションを ...

マウスで画像を動かすJavaScript

この記事では、マウスの動きに追従する画像を実現するためのJavaScriptの具体的なコードを参考ま...