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 パッケージ マネージャーの説明

推薦する

CSS 表示テーブルの適応的な高さと幅の問題の解決策

定義と使用法display プロパティは、要素が生成するボックスのタイプを指定します。例示するこの属...

マルチポートおよびマルチドメイン名アクセスのNginx構成の実装

サーバーに複数のサイトを展開するには、異なるサイトにアクセスするために複数のポートを開く必要がありま...

Docker で Kong API Gateway をインストールして使用する詳細なチュートリアル

1 はじめにKong は単純な製品ではありません。この記事で言及されている Kong は主に Kon...

MySQLデータの同時更新を処理する方法

UPDATE はロックしますか?以下のような場合、SQL文はロックされますか? テーブル1を更新しま...

Linux lnコマンドの使用

1. コマンドの紹介ln コマンドは、ファイルのリンクを作成するために使用されます。リンクは、ハード...

MySQL で SQL 文の実行時間を表示する方法

目次1. 初期SQLの準備2.MysqlはSQL文の実行時間をチェックします3. さまざまなクエリの...

VMware で VMware ツールをインストールしてもインストール ファイルが表示されない問題を解決する方法

VMware ツールは VMware の使用に非常に便利です。そのため、VMware ツールをインス...

docker compose を使ってワンクリックで分散構成センター Apollo を展開するプロセスの詳細な説明

導入分散について話すときは、分散構成センター、分散ログ、分散リンク トラッキングなどについて考える必...

Docker 階層化パッケージを使用して Spring Boot を設定する方法

Spring Boot プロジェクトでは、Docker コンテナ、jar、war の階層化パッケージ...

Vue フィルターの使用とタイムスタンプ変換の問題

目次1. 概念をすぐに認識する: 2. ローカルフィルター: 3. グローバルフィルター: 4. 拡...

Linux でスレッドを作成するための pthread_create の具体的な使用法

pthread_create関数機能紹介pthread_createはUNIX環境のスレッド作成関数...

Docker Secretの管理と使用の詳細な説明

1. Docker Secretとは1. シナリオ表示MySQL サービスなど、一部のサービスではパ...

@font-face を使用して Web ページに特殊文字を実装する (カスタム フォントを作成する)

数日前、CSS を使用して三角形の矢印を実装する方法について記事を書きました。 目的の効果は達成され...

Linux redis-Sentinel 設定の詳細

ダウンロードダウンロードアドレス: https://redis.io/download /usr/l...

Centos7.x での Nginx のインストール、SSL 設定、一般的なコマンドの詳細な説明

1. インストールyumを使用してインストールする ##yum nginx を自動的にインストールす...