TiDBBinlogのモニタリング

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

モニタリング指標

TiDB Binlog は、 PumpとDrainerの 2 つのコンポーネントで構成されます。このセクションでは、 PumpとDrainerの監視メトリクスを示します。

Pump監視メトリクス

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

Pump監視メトリクス説明
ストレージサイズ合計ディスク容量 (capacity) と利用可能なディスク容量 (available) を記録します。
メタデータ各Pumpノードが削除できるbinlogの最大 TSO ( gc_tso ) と、保存されたbinlogの最大コミット TSO ( max_commit_tso ) を記録します。
インスタンスごとにBinlog QPS を書き込む各Pumpノードが受信した書き込みbinlogリクエストの QPS を表示します。
Binlog書き込みレイテンシbinlogを書き込む各Pumpノードのレイテンシーを記録します。
ストレージ書き込みBinlogサイズPumpによって書き込まれたbinlogデータのサイズを示します。
ストレージ書き込みBinlog遅延Pumpstorageモジュールのbinlog書き込みのレイテンシーを記録します。
タイプ別のPump保管エラーPumpで発生したエラーの数をエラーの種類に基づいてカウントして記録します。
TiKV のクエリPump がTiKV を通じてトランザクション ステータスをクエリした回数

Drainer監視メトリクス

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

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

アラートルール

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

緊急レベルの警報

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

binlog_pump_storage_error_count

  • アラート ルール:

    changes(binlog_pump_storage_error_count[1m]) > 0

  • 説明:

    Pumpはローカルstorageへのbinlogデータの書き込みに失敗します。

  • 解決:

    pump_storage_error監視に異常がないか確認し、Pumpログを確認して原因を特定してください。

重大レベルのアラート

クリティカルレベルのアラートについては、異常なメトリクスを注意深く監視する必要があります。

binlog_drainer_checkpoint_high_delay

  • アラート ルール:

    (time() - binlog_drainer_checkpoint_tso / 1000) > 3600

  • 説明:

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

  • 解決:

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

      Pumpのhandle tsoをチェックすると、各Pumpの最新メッセージの時間を取得できます。Pumpに長いレイテンシーが存在するかどうかを確認し、対応するPumpが正常に実行されていることを確認してください。

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

      • Drainer execute timeが大きすぎる場合は、 Drainerがデプロイされているマシンとターゲット データベースがデプロイされているマシン間のネットワーク帯域幅とレイテンシー、およびターゲット データベースの状態を確認してください。
      • Drainerexecute timeが大きすぎず、Drainereventが小さすぎる場合は、 work countbatchを追加して再試行します。
    • 上記の 2 つの解決策が機能しない場合は、 支持を得ます PingCAP またはコミュニティからの解決策。

警報レベルのアラート

警告レベルのアラートは、問題またはエラーを通知するものです。

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が両方とも低い場合は、PingCAP またはコミュニティからの支持を得ます

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の使用可能なディスク容量は 20 GB 未満です。

  • 解決:

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

binlog_drainer_checkpoint_tso_no_change_for_1m

  • アラート ルール:

    changes(binlog_drainer_checkpoint_tso[1m]) < 1

  • 説明:

    Drainercheckpointは 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 クラスターの状態を確認します。
    • Drainerログまたはモニターを確認してください。 DDL 操作によってこの問題が発生する場合は、無視してかまいません。

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