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
...
そしてtikv-importer.tomlでは:
# Listening address of the status server.
status-server-address = '0.0.0.0:8286'
Prometheus がサーバーを検出できるように構成する必要があります。たとえば、サーバーアドレスをscrape_configsセクションに直接追加できます。
...
scrape_configs:
- job_name: 'tidb-lightning'
static_configs:
- targets: ['192.168.20.10:8289']
- job_name: 'tikv-importer'
static_configs:
- targets: ['192.168.20.9:8286']
グラファナダッシュボード
グラファナは、Prometheus メトリクスをダッシュボードとして視覚化するための Web インターフェイスです。
行 1: 速度
場合によっては、インポート速度がゼロに低下し、他の部分が追いつくことがあります。これは正常です。
行 2: 進捗状況
行 3: リソース
行 4: クォータ
行 5: 読み取り速度
いずれかの時間が長すぎる場合は、 TiDB Lightningによって使用されるディスクが遅すぎるか、I/O でビジーであることを示します。
行 6: ストレージ
行 7: インポート速度
モニタリング指標
このセクションでは、デフォルトの Grafana ダッシュボードでカバーされていない他のメトリクスを監視する必要がある場合に、 tikv-importerとtidb-lightningの監視メトリクスについて説明します。
tikv-importer
tikv-importerによって提供されるメトリックは、名前空間tikv_import_*の下にリストされます。
tikv_import_rpc_duration(ヒストグラム)RPC アクションの期間のバケット化されたヒストグラム。ラベル:
- request : どのような RPC が実行されるか
switch_mode: TiKV ノードをインポート/通常モードに切り替えましたopen_engine: エンジン ファイルを開きましたwrite_engine: データを受信し、エンジンに書き込んだclose_engine: エンジン ファイルを閉じましたimport_engine: エンジン ファイルを TiKV クラスターにインポートしましたcleanup_engine: エンジンファイルを削除しましたcompact_cluster: TiKV クラスターを明示的に圧縮しましたupload: SST ファイルをアップロードしましたingest: SST ファイルを取り込みましたcompact: TiKV ノードを明示的に圧縮
- result : RPCの実行結果
okerror
- request : どのような RPC が実行されるか
tikv_import_write_chunk_bytes(ヒストグラム)TiDB Lightningから受信した KV ペアのブロックの非圧縮サイズのバケット化されたヒストグラム。
tikv_import_write_chunk_duration(ヒストグラム)TiDB Lightningから KV ペアのブロックを受信するのに必要な時間のバケット化されたヒストグラム。
tikv_import_upload_chunk_bytes(ヒストグラム)TiKV にアップロードされた SST ファイルのチャンクの圧縮サイズのバケット化されたヒストグラム。
tikv_import_upload_chunk_duration(ヒストグラム)SST ファイルのチャンクを TiKV にアップロードするのに必要な時間のバケット化されたヒストグラム。
tikv_import_range_delivery_duration(ヒストグラム)一連の KV ペアを
dispatch-jobに配信するのに必要な時間のバケット化されたヒストグラム。tikv_import_split_sst_duration(ヒストグラム)エンジン ファイルから範囲を単一の SST ファイルに分割するのに必要な時間のバケット化されたヒストグラム。
tikv_import_sst_delivery_duration(ヒストグラム)SST ファイルの配信に必要な時間を
dispatch-jobからImportSSTJobまでのバケット化したヒストグラム。tikv_import_sst_recv_duration(ヒストグラム)dispatch-jobまたはImportSSTJobから SST ファイルを受信するのに必要な時間のバケット化されたヒストグラム。tikv_import_sst_upload_duration(ヒストグラム)SST ファイルを
ImportSSTJobから TiKV ノードにアップロードするのに必要な時間のバケット化されたヒストグラム。tikv_import_sst_chunk_bytes(ヒストグラム)TiKV ノードにアップロードされた SST ファイルの圧縮サイズのバケット化されたヒストグラム。
tikv_import_sst_ingest_duration(ヒストグラム)SST ファイルを TiKV に取り込むのに必要な時間のバケット化されたヒストグラム。
tikv_import_each_phase(ゲージ)実行フェーズを示します。可能な値は 1 (フェーズ内での実行を意味します)、0 (フェーズ外の実行を意味します) です。ラベル:
- 位相
importprepare
- 位相
tikv_import_wait_store_available_count(カウンター)SST ファイルのアップロード時に TiKV ノードのスペースが不十分であることが判明した回数をカウントします。ラベル:
- store_id : TiKV ストア ID。
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
- 名前:






