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']

Grafanaダッシュボード

グラファナ 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 Goroutine の数TiDB Lightningで使用される実行中の goroutine の数
CPU%各サービスで使用される論理 CPU コアの数

4行目: 割り当て

Panels in fourth row

パネルシリーズ説明
怠け者の労働者io未使用の数は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 プロセス期間行エンコード1行を解析してエンコードするのにかかる時間
SQL プロセス期間ブロック配信KV ペアのブロックを TiKV インポーターに送信するのにかかる時間

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

6行目: ストレージ

Panels in sixth row

パネルシリーズ説明
SQL処理速度データ配信率TiKVインポーターへのデータKVペアの配信速度
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 エンコーダーは、SQL INSERTステートメントを KV ペアに変換するメモリ内 TiDB インスタンスです。正常な状況では、ネット値が制限される必要があります。ラベル:

    • タイプ
      • open
      • closed
  • 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 (ヒストグラム)

    テーブルのインポートに必要な時間のバケット化されたヒストグラム。

  • 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

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