TiDBBinlogモニタリング

TiDB Binlogを正常にデプロイしたら、Grafana Web(デフォルトのアドレス: http:// grafana_ip:3000 、デフォルトのアカウント:admin、パスワード:admin)にアクセスして、PumpandDrainerの状態を確認できます。

モニタリング指標

TiDB Binlogは、ポンプとドレイナーの2つのコンポーネントで構成されています。このセクションでは、ポンプとドレイナーの監視メトリックを示します。

ポンプ監視メトリクス

ポンプ監視メトリックを理解するには、次の表を確認してください。

ポンプ監視メトリクス説明
ストレージサイズ合計ディスク容量(容量)と使用可能なディスク容量(使用可能)を記録します
メタデータ各Pumpノードが削除できるbinlogの最大TSO( gc_tso )と、保存されたbinlogの最大コミットTSO( max_commit_tso )を記録します。
インスタンスごとのBinlogQPSの書き込み各Pumpノードが受信したbinlog要求の書き込みのQPSを表示します
Binlogレイテンシを書き込むbinlogを書き込む各Pumpノードのレイテンシー時間を記録します
ストレージ書き込みビンログサイズPumpによって書き込まれたbinlogデータのサイズを表示します
ストレージ書き込みBinlogレイテンシbinlogを書き込むポンプストレージモジュールの待ち時間を記録します
タイプ別の揚水発電エラーエラーのタイプに基づいてカウントされた、Pumpで発生したエラーの数を記録します
TiKVを照会するPumpがTiKVを介してトランザクションステータスを照会する回数

ドレイナーモニタリングメトリクス

Drainerの監視メトリックを理解するには、次の表を確認してください。

ドレイナーモニタリングメトリクス説明
チェックポイントTSODrainerがすでにダウンストリームに複製したbinlogの最大TSO時間を示します。現在の時刻を使用してbinlogタイムスタンプを差し引くことにより、ラグを取得できます。ただし、タイムスタンプはマスタークラスタのPDによって割り当てられ、PDの時刻によって決定されることに注意してください。
ポンプハンドルTSODrainerが各Pumpノードから取得するbinlogファイルの中で最大のTSO時間を記録します
ポンプNodeIDによるBinlogQPSのプルDrainerが各Pumpノードからbinlogを取得したときのQPSを表示します
ポンプによる95%のBinlogリーチ期間binlogがPumpに書き込まれてから、binlogがDrainerによって取得されるまでの遅延を記録します。
タイプ別エラーエラーのタイプに基づいてカウントされた、Drainerが遭遇したエラーの数を示します
SQLクエリ時間DrainerがダウンストリームでSQLステートメントを実行するのにかかる時間を記録します
ドレイナーイベント「ddl」、「insert」、「delete」、「update」、「flush」、「savepoint」など、さまざまな種類のイベントの数を表示します
実行時間binlogをダウンストリーム同期モジュールに書き込むのにかかる時間を記録します
95%のビンログサイズDrainerが各Pumpノードから取得するbinlogデータのサイズを示します
DDLジョブ数Drainerによって処理されたDDLステートメントの数を記録します
キューサイズ作業キューのサイズをDrainerに記録します

アラートルール

このセクションでは、TiDBBinlogのアラートルールについて説明します。重大度レベルに応じて、TiDB Binlogアラートルールは、緊急レベル、クリティカルレベル、および警告レベルの3つのカテゴリ(高から低)に分類されます。

緊急レベルのアラート

緊急レベルのアラートは、多くの場合、サービスまたはノードの障害によって発生します。すぐに手動で介入する必要があります。

binlog_pump_storage_error_count

  • アラートルール:

    changes(binlog_pump_storage_error_count[1m]) > 0

  • 説明:

    Pumpはbinlogデータをローカルストレージに書き込めません。

  • 解決:

    pump_storage_errorモニタリングにエラーが存在するかどうかを確認し、ポンプログを確認して原因を特定します。

クリティカルレベルのアラート

クリティカルレベルのアラートの場合、異常なメトリックを注意深く監視する必要があります。

binlog_drainer_checkpoint_high_delay

  • アラートルール:

    (time() - binlog_drainer_checkpoint_tso / 1000) > 3600

  • 説明:

    Drainerレプリケーションの遅延が1時間を超えています。

  • 解決:

    • Pumpからデータを取得するには遅すぎるかどうかを確認します。

      ポンプのhandle tsoをチェックして、各ポンプの最新メッセージの時間を取得できます。ポンプに高い待ち時間が存在するかどうかを確認し、対応するポンプが正常に動作していることを確認します。

    • eventexecute latencyに基づいて、ダウンストリームでデータを複製するには遅すぎるかどうかを確認します。

      • Drainer execute timeが大きすぎる場合は、Drainerが展開されているマシンとターゲットデータベースが展開されているマシンの間のネットワーク帯域幅と遅延、およびターゲットデータベースの状態を確認してください。
      • ドレイナーexecute timeが大きすぎず、ドレイナーeventが小さすぎる場合は、 work countbatchを追加して、再試行してください。
    • 上記の2つの解決策が機能しない場合は、 support@pingcap.comに連絡してください。

警告レベルのアラート

警告レベルのアラートは、問題またはエラーのリマインダーです。

binlog_pump_write_binlog_rpc_duration_seconds_bucket

  • アラートルール:

    histogram_quantile(0.9, rate(binlog_pump_rpc_duration_seconds_bucket{method="WriteBinlog"}[5m])) > 1

  • 説明:

    Pumpがbinlogを書き込むTiDB要求を処理するのに時間がかかりすぎます。

  • 解決:

    • ディスクパフォーマンスの圧力を確認し、 node exportedを介してディスクパフォーマンスの監視を確認します。
    • disk latencyutilの両方が低い場合は、 support@pingcap.comに連絡してください。

binlog_pump_storage_write_binlog_duration_time_bucket

  • アラートルール:

    histogram_quantile(0.9, rate(binlog_pump_storage_write_binlog_duration_time_bucket{type="batch"}[5m])) > 1

  • 説明:

    Pumpがローカルbinlogをローカルディスクに書き込むのにかかる時間。

  • 解決:

    Pumpのローカルディスクの状態を確認し、問題を修正します。

binlog_pump_storage_available_size_less_than_20G

  • アラートルール:

    binlog_pump_storage_storage_size_bytes{type="available"} < 20 * 1024 * 1024 * 1024

  • 説明:

    Pumpの使用可能なディスク容量は20GB未満です。

  • 解決:

    ポンプgc_tsoが正常か確認してください。そうでない場合は、ポンプのGC時間構成を調整するか、対応するポンプをオフラインにします。

binlog_drainer_checkpoint_tso_no_change_for_1m

  • アラートルール:

    changes(binlog_drainer_checkpoint_tso[1m]) < 1

  • 説明:

    ドレイナーcheckpointは1分間更新されていません。

  • 解決:

    オフラインではないすべてのポンプが正常に動作しているかどうかを確認します。

binlog_drainer_execute_duration_time_more_than_10s

  • アラートルール:

    histogram_quantile(0.9, rate(binlog_drainer_execute_duration_time_bucket[1m])) > 10

  • 説明:

    DrainerがデータをTiDBに複製するのにかかるトランザクション時間。大きすぎると、データのDrainerレプリケーションが影響を受けます。

  • 解決:

    • TiDBクラスタの状態を確認してください。
    • ドレイナーログまたはモニターを確認してください。 DDL操作によってこの問題が発生する場合は、無視してかまいません。

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