Monitoring the Connection Manager#

SQLクエリーとHTTPエンドポイントを介して、接続マネージャーとその接続のステータスを表示できます。

使用可能なSQLテーブルとビュー#

接続マネージャーは、接続マネージャーとその接続のステータスを監視するために使用できる多数のテーブルとビューを提供します。これらには次のものが含まれます。

  • bdr.stat_activity - これは、connection_manager_client_addr およびconnection_manager_client_port に関する追加列で強化されたpg_stat_activity からの情報であり、接続が接続マネージャーを介して来ており、読み取り専用ポートを介して接続している場合はsession_read_only です。

  • bdr.stat_connection_manager - Connection Managerのステータスに関する統計を提供するビューです。

  • bdr.stat_connection_manager_connections - Connection Managerの接続に関する統計を提供するビューです。

  • bdr.stat_connection_manager_node_stats - 各データノードの接続マネージャーに関する統計を提供するビューです。

  • bdr.stat_connection_manager_hba_file_rules - これは、接続マネージャーのどのHBAファイルルールがこのノードで使用されているかを示すビューです。

使用可能なHTTP / HTTPSエンドポイント#

接続マネージャーは、HTTP APIを介して監視できます。

true/falseを返すエンドポイントは、trueの場合200ステータスコード、falseの場合503ステータスコードも結果ます。

次のエンドポイントが使用できます。

Endpoint

Description

/connection/is-live

接続マネージャーはライブリッスンしていますか。常に「true」を返します。マネージャーが実行されていない場合、クライアントは単に接続/URLを開くことに失敗します。

/connection/is-ready

接続マネージャーは接続を受け入れる準備ができていますか。true(200)/false(503)を返します。

/connection/is-ready-ro

接続マネージャーは読み取り専用接続を受け入れる準備ができていますか。true(200)/false(503)を返します。

/connection/is-ready-rw

接続マネージャーは読み取り/書き込み接続を受け入れる準備ができていますか。true(200)/false(503)を返します。

/node/is-read-write

このPGDノードは、接続マネージャーではなくPGDノード自分自身、読み取り/書き込みノードですか、書き込みリーダーですか、true(200)/false(503)を返します。

/node/is-read-only

このPGDノードは、接続マネージャーではなくPGDノード自分自身であり、読み取り専用ノード書き込みリーダーではなく、true(200)/false(503)を返します。

/group/read-write-info

接続マネージャーのこのインスタンスの読み取り/書き込みプールに関する情報を返します。ノードID、ノード名、ノードホスト、ノードポート、ノードdbnameを含むJSON形式のプール内のノードのリスト。読み取り/書き込みプールの場合、プールには1つのエントリのみが含まれます。

/group/read-only-info

接続マネージャーのこのインスタンスの読み取り専用プールに関する情報を返します。ノードID、ノード名、ノードホスト、ノードポート、ノードdbnameを含むJSON形式のプール内のノードのリスト。

以下は、/group/read-write-info エンドポイントからの応答本文の例です。

[
  {
    "id": 683485707,
    "name": "node-1",
    "host": "host-1",
    "port": 5432,
    "dbname": "pgddb"
  }
]

ロギング#

すべてのConnection ManagerログメッセージはPostgreSQLログに書き込まれます。

log_line_prefixの%r および%h エスケープシーケンスの動作が、それぞれ「proxy_address/client_address」および「proxy_port/client_port」をログに記録するように変更されました。

これは、使用するサーバー接続のGUCをプロキシ設定することにより実現されます。ユーザーはこのGUCをオーバーライドできるため、client_addressから派生したセキュリティコンテキストは、完全なセッションログを参照して検証する必要があります。