TiDB Lightning監視
tidb-lightning プロメテウスによるメトリクス収集をサポートします。このドキュメントでは、 TiDB Lightningのモニター構成とモニタリングメトリクスを紹介します。
モニターの設定
TiDB Lightningを手動でインストールする場合は、以下の手順に従ってください。
tidb-lightningのメトリクスは、それが検出されている限り、Prometheus によって直接収集できます。 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']
グラファナダッシュボード
グラファナは、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の余り、通常はプロセスが終了するまで 0index:index-concurrencyの余り、通常はプロセスが終了するまで 0region:region-concurrencyの余り、通常はプロセスが終了するまで 0io:io-concurrencyの残り。通常は設定値 (デフォルト 5) に近く、0 に近い場合はディスクが遅すぎることを意味します。closed-engine: 閉じられているがまだクリーンアップされていないエンジンの数。通常はインデックス + テーブル同時実行数に近い値 (デフォルトは 8)。 0 に近い値は、 TiDB Lightning がTiKV Importer よりも高速であることを意味し、 TiDB Lightningが停止する可能性があります。
- 名前:
lightning_kv_encoder(カウンター)開いた KV エンコーダーと閉じた KV エンコーダーをカウントします。 KV エンコーダーは、SQL
INSERTステートメントを KV ペアに変換するメモリ内の TiDB インスタンスです。健全な状況では、正味値を制限する必要があります。ラベル:- タイプ:
openclosed
- タイプ:
lightning_tables(カウンター)処理されたテーブルとそのステータスをカウントします。ラベル:
- state : どのフェーズを完了する必要があるかを示すテーブルのステータス
pending: まだ処理されていませんwritten: すべてのデータがエンコードされて送信されるclosed: 対応するすべてのエンジン ファイルが閉じられていますimported: すべてのエンジン ファイルがターゲット クラスターにインポートされていますaltered_auto_inc: AUTO_INCREMENT ID が変更されましたchecksum: チェックサムを実行analyzed: 統計分析を実行completed: テーブルは完全にインポートされ、検証されています。
- result : 現在のフェーズの結果
success: フェーズは正常に完了しましたfailure: フェーズは失敗しました (完了しませんでした)
- state : どのフェーズを完了する必要があるかを示すテーブルのステータス
lightning_engines(カウンター)処理されたエンジン ファイルの数とそのステータスをカウントします。ラベル:
- state : エンジンのステータス。どのフェーズを完了する必要があるかを示します。
pending: まだ処理されていませんwritten: すべてのデータがエンコードされて送信されるclosed: エンジン ファイルが閉じられましたimported: エンジン ファイルはターゲット クラスターにインポートされていますcompleted: エンジンは完全にインポートされています
- result : 現在のフェーズの結果
success: フェーズは正常に完了しましたfailure: フェーズは失敗しました (完了しませんでした)
- state : エンジンのステータス。どのフェーズを完了する必要があるかを示します。
lightning_chunks(カウンター)処理されたチャンクの数とそのステータスをカウントします。ラベル:
- state : チャンクのステータス。チャンクがどのフェーズにあるかを示します。
estimated: (状態ではない) この値は現在のタスクのチャンクの総数を示します。pending: ロードされていますが、まだ処理されていませんrunning: データはエンコードされて送信されていますfinished: チャンク全体が処理されましたfailed: 処理中にエラーが発生しました
- state : チャンクのステータス。チャンクがどのフェーズにあるかを示します。
lightning_import_seconds(ヒストグラム)テーブルのインポートに必要な時間のバケット化されたヒストグラム。
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
- 名前:






