本文へ移動
Telemetry
データベースの信頼性 SQL レシピ

データベースのレプリケーションと CDC ラグを測定する

レプリカと変更データ キャプチャ コンシューマを、平均ラグ、最悪のラグ、遅れているバイト数、および古いサンプル レートによって比較します。

初心者database_replication_samplesレビュー済み 2026-07-28テスト済み アパッチ DataFusion 45.2.0

レビュー者 Telemetry 製品チーム . SQL の互換性、イベント コントラクト、合成出力、および操作上の注意事項. 基準と所有権を確認する

質問に回答しました

どのレプリカまたは CDC コンシューマーがソース データベースに遅れをとっていますか?

レプリケーションが正常に機能するのは、ダウンストリームのコンシューマが目的に適した最新の状態を維持している場合に限られます。遅れている秒数とバイト数の両方を測定することで、静かに停止しているコンシューマと、より大きなストリームを処理しているビジーなコンシューマを区別できます。

イベント契約

クエリが期待するフィールド

フィールド種類なぜ存在するのか
timestamp_utcTimestampUTC でのレプリケーションのサンプル時間。
consumer_nameUtf8安定したレプリカ、コネクタ、またはダウンストリームのコンシューマ名。
source_typeUtf8postgres_replica、cdc_pipeline、または別の制御されたソース タイプ。
regionUtf8承認された展開地域。
lag_secondsFloat64ソースからの遅れが観測されました。
replay_bytes_behindInt64再生または消費を待機しているおおよそのバイト数。
statusUtf8正常、遅延、停止、または利用不可。
environmentUtf8導入環境。
DataFusion SQL

クエリをコピーする

sql
SELECT
  consumer_name,
  source_type,
  region,
  COUNT(*) AS samples,
  AVG(lag_seconds) AS average_lag_seconds,
  MAX(lag_seconds) AS maximum_lag_seconds,
  MAX(replay_bytes_behind) AS maximum_bytes_behind,
  SUM(CASE WHEN lag_seconds > 30 THEN 1 ELSE 0 END) AS stale_samples,
  100.0 * SUM(CASE WHEN lag_seconds > 30 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS stale_sample_rate_pct
FROM database_replication_samples
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'production'
GROUP BY consumer_name, source_type, region
HAVING COUNT(*) >= 10
ORDER BY maximum_lag_seconds DESC;

この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。

クエリ結果

最大レプリケーションまたは CDC ラグ

西部地域のレプリカは、2 つのサンプルで例示の 32 秒の鮮度閾値を超えています。

consumer_namesource_typeregionsamplesaverage_lag_secondsmaximum_lag_secondsmaximum_bytes_behindstale_samplesstale_sample_rate_pct
replica-us-westpostgres_replicaus-west1214.584244,040,192216.67
billing-cdccdc_pipelineus-east12366,291,45600

合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。

Maximum replication or CDC lag: Measure Database Replication and CDC Lag 結果例からの合成 maximum_lag_seconds 値の静的チャート
決定論的な出力例のインデックス可能な SVG。記事、ランブック、または出典を明示した設計レビューのためにダウンロードしてください。

例を再現する

パブリックフィクスチャをダウンロードする

JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。

SQL の仕組み

  1. 1平均ラグは通常の状態を表し、最大ラグは短いながらも重大なストールを維持します。
  2. 2古いサンプルレートは、単一の最大値よりも警告しやすいです。
  3. 3同じ遅延が非常に異なる量のリプレイ作業を表す可能性があるため、背後のバイト数によってワークロード コンテキストが提供されます。

決定すべきエッジケース

  • データベース遅延フィールドは、書き込み、フラッシュ、リプレイ、またはコネクタ遅延を意味する場合があります。測定された境界に名前を付けます。
  • 静かなソースは、古いままの下位バイトを報告する可能性があります。時間と量の両方を保ちます。
  • 1 つのグローバルな 32 秒しきい値ではなく、ワークロード固有の鮮度目標を使用します。

推奨されるダッシュボード

  • バー: maximum_lag_seconds (消費者別)
  • トレンド: lag_seconds および replay_bytes_behind
  • 表: 最新の遅れているコンシューマまたは利用できないコンシューマ

アラートガイダンス

消費者が連続サンプルについて文書化された鮮度目標を超えた場合、または報告を完全に停止した場合に警告します。

アラート設定を読む

レシピを活用する

関連する機器とガイド

分析を続ける

実際のイベントで実行する

テーブルを作成し、フィールドを調整して、結果を保存します

無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。

API キーを取得する