TiDB Lightning監視
tidb-lightning プロメテウスを介してメトリクス収集をサポートします。このドキュメントでは、 TiDB Lightningの監視設定と監視メトリクスについて説明します。
モニター構成
TiDB Lightning を手動でインストールする場合は、以下の手順に従ってください。
tidb-lightningのメトリクスは、Prometheus が検出済みであれば直接収集できます。3 のメトリクスポートはtidb-lightning.tomlのように設定できます。
[lightning]
# HTTP port for debugging and Prometheus metrics pulling (0 to disable)
pprof-port = 8289
...
Prometheusがサーバーを検出するように設定する必要があります。例えば、 scrape_configsセクションにサーバーのアドレスを直接追加することができます。
...
scrape_configs:
- job_name: 'tidb-lightning'
static_configs:
- targets: ['192.168.20.10:8289']
Grafanaダッシュボード
グラファナ 、Prometheus メトリックをダッシュボードとして視覚化するための Web インターフェースです。
1行目: スピード
場合によっては、インポート速度がゼロになり、他のパーツが追いつくまで時間がかかることがあります。これは正常な動作です。
2行目: 進捗状況
3行目: リソース
4行目: 割り当て
5行目: 読み取り速度
いずれかの期間が長すぎる場合は、 TiDB Lightningが使用するディスクが遅すぎるか、I/O でビジー状態であることを示します。
6行目: ストレージ
7行目: インポート速度
監視メトリクス
このセクションでは、 tidb-lightningの監視メトリックについて説明します。
tidb-lightningによって提供されるメトリックは、名前空間lightning_*下にリストされます。
lightning_importer_engine(カウンター)開いているエンジン ファイルと閉じているエンジン ファイルの数をカウントします。ラベル:
- タイプ:
openclosed
- タイプ:
lightning_idle_workers(ゲージ)アイドル状態のワーカーをカウントします。ラベル:
- 名前:
table:table-concurrencyの余り。通常はプロセス終了まで 0 です。index:index-concurrencyの余り。通常はプロセス終了まで 0 です。region:region-concurrencyの余り。通常はプロセス終了まで 0 です。io:io-concurrencyの余り。通常は設定された値(デフォルトは 5)に近い。0 に近い場合はディスクが遅すぎることを意味する。closed-engine: 終了したがまだクリーンアップされていないエンジンの数。通常はインデックス + テーブル同時実行数(デフォルトは8)に近い値です。0に近い値は、TiDB LightningがTiKV Importerよりも高速であることを意味し、 TiDB Lightningが停止する可能性があります。
- 名前:
lightning_kv_encoder(カウンター)オープンおよびクローズされたKVエンコーダーをカウントします。KVエンコーダーは、SQL
INSERT文をKVペアに変換するインメモリTiDBインスタンスです。健全な状況では、正味値は制限される必要があります。ラベル:- タイプ:
openclosed
- タイプ:
lightning_tables(カウンター)処理されたテーブルとそのステータスをカウントします。ラベル:
- 状態: テーブルの状態。どのフェーズを完了する必要があるかを示します。
pending: まだ処理されていませんwritten: すべてのデータがエンコードされて送信されましたclosed: 対応するすべてのエンジンファイルが閉じられていますimported: すべてのエンジン ファイルがターゲット クラスターにインポートされましたaltered_auto_inc: AUTO_INCREMENT IDが変更されましたchecksum: チェックサムを実行analyzed: 統計分析を実行しましたcompleted: テーブルは完全にインポートされ、検証されました
- 結果: 現在のフェーズの結果
success: フェーズは正常に完了しましたfailure: フェーズが失敗しました (完了しませんでした)
- 状態: テーブルの状態。どのフェーズを完了する必要があるかを示します。
lightning_engines(カウンター)処理されたエンジンファイルの数とそのステータスをカウントします。ラベル:
- 状態: エンジンの状態。どのフェーズを完了する必要があるかを示します。
pending: まだ処理されていませんwritten: すべてのデータがエンコードされて送信されましたclosed: エンジンファイルが閉じられましたimported: エンジンファイルがターゲットクラスターにインポートされましたcompleted: エンジンが完全にインポートされました
- 結果: 現在のフェーズの結果
success: フェーズは正常に完了しましたfailure: フェーズが失敗しました (完了しませんでした)
- 状態: エンジンの状態。どのフェーズを完了する必要があるかを示します。
lightning_chunks(カウンター)処理されたチャンクの数とそのステータスをカウントします。ラベル:
- 状態: チャンクのステータス。チャンクがどのフェーズにあるかを示します。
estimated: (状態ではない) この値は現在のタスク内のチャンクの合計数を示しますpending: 読み込まれているがまだ処理されていないrunning: データがエンコードされ送信されていますfinished: チャンク全体が処理されましたfailed: 処理中にエラーが発生しました
- 状態: チャンクのステータス。チャンクがどのフェーズにあるかを示します。
lightning_import_seconds(ヒストグラム)Bucketed histogram for the time needed to import a table.
lightning_row_read_bytes(ヒストグラム)単一の SQL 行のサイズのバケット化されたヒストグラム。
lightning_row_encode_seconds(ヒストグラム)単一の SQL 行を KV ペアにエンコードするために必要な時間のバケット化されたヒストグラム。
lightning_row_kv_deliver_seconds(ヒストグラム)1 つの SQL 行に対応する KV ペアのセットを配信するために必要な時間のバケット化されたヒストグラム。
lightning_block_deliver_seconds(ヒストグラム)KV ペアのブロックをインポーターに配信するために必要な時間のバケット化されたヒストグラム。
lightning_block_deliver_bytes(ヒストグラム)インポーターに配信された KV ペアのブロックの非圧縮サイズのバケット化されたヒストグラム。
lightning_chunk_parser_read_block_seconds(ヒストグラム)データ ファイル パーサーがブロックを読み取るために必要な時間のバケット化されたヒストグラム。
lightning_checksum_seconds(ヒストグラム)テーブルのチェックサムを計算するために必要な時間のバケット化されたヒストグラム。
lightning_apply_worker_seconds(ヒストグラム)アイドル状態のワーカーを獲得するのに必要な時間のバケット化されたヒストグラム(
lightning_idle_workersゲージも参照)。ラベル:- 名前:
tableindexregionioclosed-engine
- 名前:






