Using the web UI#

Web UIを使用して、ブラウザーからクラスターの状態、レプリケーションラグ、コミットスコープ、競合、およびクエリアクティビティをモニタし、ページを特定のノードグループまたはノードにスコープして詳細を確認します。

ログイン#

Postgresの pg_monitor 事前定義されたロールのメンバーであるロール、またはスーパーユーザーを使用して、Postgresロール名とパスワードでログインします。ログインすると、Cookieベースのセッションが作成されます。スーパーユーザーロールを使用して、 bdr.stat_activity ページのクエリテキストを表示し、 エラーログ ページをすべて表示します。

ブラウザでhttps://<node>:<monitor_port>/ を開き、ログインします。

各ノードは独自のUIを提供しますが、UIはすべてのクラスターノードからのデータを表示できます。クラスターがレプリケーションに既に使用しているのと同じPGD接続文字列を使用してピアに接続するため、任意のノードに接続すると、クラスター全体のビューが提供されます。

Web UIのナビゲート#

ナビゲーションメニューを使用して、監視ページ間を移動します。現在のページのスコープをノードグループまたは個々のノードに設定し、その下に トポロジ ツリーを表示し、テーブルを選択してフィルタリングし、時系列チャートを選択したノードごとに1行に切り替えます。

時系列チャートの時間レンジセレクターを調整して、より細かいまたは粗い解像度を表示します。各ノードは独自の履歴を保持するため、外部ストレージは必要ありません。

概要#

  • ランディングページでクラスターの状態を一目で確認します。統計カードは、稼働時間、合計のうちのノード数、CPUとメモリ使用量、データとWALディスクの使用領域、およびノードグループとRaftリーダー数を要約しています。

  • アラートバナーは、トランザクションIDのラップアラウンドに近づくノード、WALアーカイブの障害、予約されていないまたはまだ必要なWALを失ったレプリケーションスロット、1GBを超えて保持している非アクティブなスロットなど、見逃している可能性のある問題を呼び出します。

  • テーブルでノード、ノードグループ、レプリケーションラグ、接続マネージャールーティング、およびRaftステータスを検索し、ノードグループを選択して、タイプ、親グループ、読み取りノードを含むそのプロパティを開きます。

接続管理#

  • 合計接続の Postgres Connections グラフを使用して、接続マネージャーのルーティングを追跡し、経時的な読み取り専用と読み取り書き込みトラフィックの分割を追跡します。

  • すぐに使用できる読み書きおよび読み取り専用URIの 接続文字列 と、パスワードを入力せずに接続するための一致する

.pgpass スニペットを確認します。

  • 現在および以前の書き込みリーダーと読み取りノードの ルーティング状態 、遅延しきい値とルーティングが有効になっているかどうかの ルーティング構成 、効果的な読み取り-書き込みおよび読み取りの 接続マネージャーポート を検査します。ポートのみ、およびプールモードと接続制限の場合は 接続プール 。

レプリケーション#

  • 統計カードでピア数とすべてのピアが追い付いているかどうかを確認します。

  • Replication Lag テーブルでオリジン-ターゲットペア間のレプリケーションラグを確認し、 その他のレプリケーションでタイプ、データベース、プラグイン、アクティビティ、WALステータス、保持されたWALを含む非PGDレプリケーションスロットを追跡します。スロット テーブル。

  • クラスターの最大再生ラグと、ノードがまだWALを保持している最も古いラグを、 ラグ履歴 で選択した時間範囲でグラフにします。

ラフト#

  • 各ノードのロール、現在のリーダー、用語、コミットインデックスを含むノードグループごとのコンセンサスステータスと、クラスター全体のRaftメンバー、グループ、リーダーの数を確認します。

コミットスコープ#

  • コミットスコープ定義とそれが適用されるグループを確認します。

  • レイテンシー分布ヒストグラムとp50、p90、およびp99パーセンタイルをプロットする コミットレイテンシー チャートでコミットレイテンシーを追跡します。どちらもコミットレイテンシーメトリックから描画されます。

  • 統計テーブルのスコープおよびグループごとのコール、コミット、アボート、低下、および平均、最小、および最大コミット時間を確認します。

レプリケーションの競合#

  • 競合を追跡し、チャートでエラー率を適用し、競合ログ構成とデフォルトをオーバーライドする競合リゾルバーを確認します。

  • 競合履歴テーブルでスキーマ、テーブル、および競合タイプごとに検出された競合を検索し、解決結果とそれぞれが再発した回数を含み、その背後にある個々の競合イベントの行を展開します。

  • 各グループのエラーポリシー、再試行およびスキップ制限、保留中の失敗した変更、および最近解決されたトランザクションを確認します。

アクティビティ#

  • アクティブなクエリーと最も長く実行されているトランザクションをグラフで追跡します。

  • ロールバック率、一時ファイル流出率、ブロックされたバックエンド数などのデータベース負荷メトリックを、状態別の接続の内訳、イベントタイプ別の待機中のバックエンド、モード別のロックとともに確認します。

  • バックエンドテーブルをクライアントバックエンド、PGDワーカー、補助プロセス、またはそれらのすべてにフィルタリングして、各接続のPID、ユーザー、アプリケーション名、およびコミットスコープを使用する接続の場合、保留中の準備、コミット、およびLSN確認を表示します。

注釈

**Backends**テーブルの**Query**列を表示するには、スーパーユーザーロールが必要です。

テーブル#

  • Vacuum in Progress テーブルで実行中のバキュームを追跡し、各ターゲットテーブル、フェーズ、進行状況、デッドアイテム数、および実行時間を表示します。

  • Top Tables テーブルで最大または最も肥大化したユーザーテーブルを見つけます。デッドタプルの割合、デッドタプル数、合計サイズ、またはシークエンシャルスキャンカウントでソート可能、最後の自動バキュームが24時間以上前の場合にフラグが立てられます死んだタプルが残ります。

クエリ診断#

  • トランザクションのスループットとアクティブなクエリーをグラフで追跡し、コール数、平均レイテンシー、バッファーのヒットと読み取りを含む、pg_stat_statements によってバッキングされたテーブルの合計実行時間ごとに上位のクエリーを見つけます。

注釈

pg_stat_statements を`shared_preload_libraries` に追加し、Postgresを再起動し、CREATE EXTENSION pg_stat_statements を実行してこのビューを有効にします。

メトリック#

  • 単一の収集されたメトリックをグラフ化し、ドロップダウンから選択してカテゴリごとにフィルタリングし、その横に使用可能なすべてのメトリックのリストを参照します。

クラスターイベント#

  • 過去1日、1週間、または2週間のPGDクラスターイベントログを確認し、各イベントの時間、元ノード、サブタイプ、メッセージを表示します。

エラーログ#

  • コード、メッセージ、または詳細テキストによってノードのメモリにキャプチャされた最近のERROR 以降のログエントリを検索します。タイムスタンプ、ノード、メッセージ、詳細を含みます。複数のノードにまたがる照会により、応答しないノードがある場合に、複合アラートが生成されます。

注釈

**Error Log**ページを表示するには、スーパーユーザーロールが必要です。

注釈

UIに表示されるすべてのメトリックは、同じ認証で`/api/v1/` の下のJSONとしても到達可能です。 REST APIはリリースごとに変更される場合があるため、安定した統合ポイントではなくベストエフォートとして扱ってください。 bdr.ts_metrics() および関連ファンクションに加えて、 Monitoring through SQL でカバーされている既存のPGDカタログとビューを使用して、同じ基になるデータをSQLでも照会できます。