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: 速度

Panels in first row

パネルシリーズ説明
インポート速度TiDB Lightningからの書き込みTiDB Lightningから TiKV Importer への KV の送信速度 (各テーブルの複雑さによって異なります)
インポート速度tikvにアップロードするTiKV インポーターからすべての TiKV レプリカへの合計アップロード速度
Chunk処理時間1 つのデータ ファイルを完全にエンコードするのに必要な平均時間

場合によっては、インポート速度がゼロに低下し、他の部分が追いつくことがあります。これは正常です。

行 2: 進捗状況

Panels in second row

パネル説明
インポートの進行状況これまでにエンコードされたデータ ファイルの割合
チェックサムの進行状況正常にインポートされたことが確認されたテーブルの割合
失敗失敗したテーブルの数とその障害点 (通常は空)

行 3: リソース

Panels in third row

パネル説明
メモリ使用量各サービスが占有するメモリ量
TiDB Lightningゴルーチンの数TiDB Lightningによって使用される実行中のゴルーチンの数
CPU%各サービスが使用する論理 CPU コアの数

行 4: クォータ

Panels in fourth row

パネルシリーズ説明
怠惰な労働者イオ未使用の数io-concurrency 、通常は設定値 (デフォルト 5) に近く、0 に近い場合はディスクが遅すぎることを意味します
怠惰な労働者クローズドエンジン閉じられているがまだクリーンアップされていないエンジンの数。通常はインデックス + テーブル同時実行数 (デフォルトは 8) に近く、0 に近い場合は、 TiDB Lightningが TiKV Importer より高速であることを意味し、 TiDB Lightningが停止します。
怠惰な労働者テーブル未使用の数table-concurrency 、通常はプロセスが終了するまで 0
怠惰な労働者索引未使用の数index-concurrency 、通常はプロセスが終了するまで 0
怠惰な労働者地域未使用の数region-concurrency 、通常はプロセスが終了するまで 0
外部リソースKVエンコーダアクティブな KV エンコーダをカウントします。通常はプロセスが終了するまでregion-concurrencyと同じです。
外部リソースインポーターエンジン開かれたエンジン ファイルをカウントします。設定max-open-enginesを超えることはありません

行 5: 読み取り速度

Panels in fifth row

パネルシリーズ説明
Chunkパーサーの読み取りブロック期間ブロックの読み取り解析の準備のためにバイトの 1 ブロックを読み取るのにかかる時間
Chunkパーサーの読み取りブロック期間ワーカーを適用するアイドル状態の IO 同時実行を待機するために経過した時間
SQLの処理時間行エンコード単一行の解析とエンコードにかかる時間
SQLの処理時間ブロック配信KV ペアのブロックを TiKV インポーターに送信するのにかかる時間

いずれかの時間が長すぎる場合は、 TiDB Lightningによって使用されるディスクが遅すぎるか、I/O でビジーであることを示します。

行 6: ストレージ

Panels in sixth row

パネルシリーズ説明
SQL処理速度データ配信速度データ KV ペアの TiKV インポーターへの配信速度
SQL処理速度インデックス配信率TiKV インポーターへのインデックス KV ペアの配信速度
SQL処理速度合計配信率上記 2 つのレートの合計
合計バイト数パーサーの読み取りサイズTiDB Lightningによって読み取られているバイト数
合計バイト数データ配信サイズTiKV インポーターにすでに配信されたデータ KV ペアのバイト数
合計バイト数インデックス配信サイズTiKV インポーターにすでに配信されたインデックス KV ペアのバイト数
合計バイト数ストレージサイズ / 3TiKV クラスターが占める合計サイズを 3 (デフォルトのレプリカ数) で割ったもの

行 7: インポート速度

Panels in seventh row

パネルシリーズ説明
配達期間範囲配達一連の KV ペアを TiKV クラスターにアップロードするのにかかる時間
配達期間SSTの配送SST ファイルを TiKV クラスターにアップロードするのにかかる時間
SST プロセスの所要時間スプリットSSTKV ペアのストリームを SST ファイルに分割するのにかかる時間
SST プロセスの所要時間SSTアップロードSST ファイルのアップロードにかかる時間
SST プロセスの所要時間SST の取り込みアップロードされた SST ファイルの取り込みにかかる時間
SST プロセスの所要時間SSTサイズSSTファイルのファイルサイズ

モニタリング指標

このセクションでは、 tidb-lightningの監視メトリクスについて説明します。

tidb-lightningによって提供されるメトリックは、名前空間lightning_*の下にリストされます。

  • lightning_importer_engine (カウンター)

    開いているエンジン ファイルと閉じているエンジン ファイルをカウントします。ラベル:

    • タイプ
      • open
      • closed
  • 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 エンコーダーをカウントします。 KV エンコーダーは、SQL INSERTステートメントを KV ペアに変換するメモリ内の TiDB インスタンスです。健全な状況では、正味値を制限する必要があります。ラベル:

    • タイプ
      • open
      • closed
  • lightning_tables (カウンター)

    処理されたテーブルとそのステータスをカウントします。ラベル:

    • state : どのフェーズを完了する必要があるかを示すテーブルのステータス
      • pending : まだ処理されていません
      • written : すべてのデータがエンコードされて送信される
      • closed : 対応するすべてのエンジン ファイルが閉じられています
      • imported : すべてのエンジン ファイルがターゲット クラスターにインポートされています
      • altered_auto_inc : AUTO_INCREMENT ID が変更されました
      • checksum : チェックサムを実行
      • analyzed : 統計分析を実行
      • completed : テーブルは完全にインポートされ、検証されています。
    • result : 現在のフェーズの結果
      • success : フェーズは正常に完了しました
      • failure : フェーズは失敗しました (完了しませんでした)
  • lightning_engines (カウンター)

    処理されたエンジン ファイルの数とそのステータスをカウントします。ラベル:

    • state : エンジンのステータス。どのフェーズを完了する必要があるかを示します。
      • pending : まだ処理されていません
      • written : すべてのデータがエンコードされて送信される
      • closed : エンジン ファイルが閉じられました
      • imported : エンジン ファイルはターゲット クラスターにインポートされています
      • completed : エンジンは完全にインポートされています
    • result : 現在のフェーズの結果
      • success : フェーズは正常に完了しました
      • failure : フェーズは失敗しました (完了しませんでした)
  • lightning_chunks (カウンター)

    処理されたチャンクの数とそのステータスをカウントします。ラベル:

    • state : チャンクのステータス。チャンクがどのフェーズにあるかを示します。
      • estimated : (状態ではない) この値は現在のタスクのチャンクの総数を示します。
      • pending : ロードされていますが、まだ処理されていません
      • running : データはエンコードされて送信されています
      • finished : チャンク全体が処理されました
      • failed : 処理中にエラーが発生しました
  • 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ゲージも参照)。ラベル:

    • 名前
      • table
      • index
      • region
      • io
      • closed-engine

このページは役に立ちましたか?