Using Prometheus#

Web UIおよびREST APIと同じ監視HTTPサーバーによって提供される、標準のPrometheusターゲットの各PGDノードでhttp(s)://<node>:<monitor_port>/metrics をスクレイピングします。公開するすべてのメトリックについては、 Monitoring metrics reference を参照してください。

Web UIと同じように bdr.monitor_enabled で有効にし、 monitor_http_port 、monitor_use_https 、およびbdr.monitor_ssl_* パラメーターを使用して同じ方法で共有サーバーを構成します。

エンドポイントは、各スクレイプにHTTP Basic認証を使用し、セッションCookieではなくすべての要求でユーザー名とパスワードを送信します。 pg_monitor のメンバーであるPostgresロールに対して資格情報をチェックし、Web UIログインで使用するのと同じチェックを行うため、Prometheusのbasic_auth は変更せずに動作します。

Web UIとは異なり、スクレイプは他のノードを照会しないため、エンドポイントはローカルノードのビューのみを報告するため、 PGDノードごとに1つのターゲットを構成する必要があります。

注釈

Prometheus

postgres_exporter がノードで既に実行されており、重複したシリーズが必要ない場合、 bdr.monitor_prometheus_pg_metrics を`off` に設定します。動作を必要とする各ノードでそれを設定し、構成をリロードします。この設定は、 Monitoring metrics reference に、最も役立つ`postgres_exporter` コレクターと同等のPostgres統計ファミリーをデフォルトで含めるかどうかを制御します。 PGDネイティブメトリックは、いずれの方法でもエクスポートし続けます。

スクレイプターゲットの構成#

Prometheus構成ファイルにジョブを追加し、すべてのPGDノードをターゲットとしてリストし、basic_auth のpg_monitor ロールの資格情報を提供します。

scrape_configs:
  - job_name: pgd
    basic_auth:
      username: monitoring_role
      password: ...
    static_configs:
      - targets:
          - node1.example.com:6437
          - node2.example.com:6437

メトリックの形式と表記規則#

エンドポイントは、標準のPrometheusテキスト表示形式であるContent-Type: text/plain; version=0.0.4 で応答します。次の規則は、出力全体に適用されます。

  • カウンターは_total サフィックスを使用して生の状態でエクスポートされます。 rate() を使用してPromQLのレートを計算します。

  • ID info メトリックは定数値1 を持ち、Raftリーダー名などのラベルでペイロードを運びます。

  • 0/0 以降、ログシーケンス番号LSN位置はバイトとしてエクスポートされるため、PromQLはそれらを直接減算できます。たとえば、送信マイナス再生はバイト単位の適用ラグに等しい。

  • Postgres統計の時間値カウンターは秒に変換されます。

  • ほとんどのメトリックは、約10秒ごとにサンプリングされます。ディスク領域やコミットレイテンシーヒストグラムを含むいくつかのデータは、60秒ごとにサンプリングされます。各メトリックの正確な間隔と説明については、 Monitoring metrics reference を参照してください。

以下は/metrics から意図的に除外されています。

  • テーブルごとの統計デッドタプル、サイズ、スキャン数。カーディナリティは多くのテーブルにわたって無制限であるため、これらは代わりにREST APIおよびWeb UIの **Tables** ページを介してオンデマンドで利用可能なままです。

  • バキュームの進行状況。これらの行は一時的なものであり、時系列に適していないため、Web UIにのみ残ります。

  • pg_settings 、物理レプリケーションビューpg_stat_replication 、pg_stat_wal_receiver 、およびpg_buffercache などの追加の拡張機能が必要なもの。

  • pg_up スタイルのメトリック。エクスポーターはサーバー自分自身の内部で実行されるため、スクレイプ用のPrometheus独自のup メトリックがすでに到達可能性をカバーしています。

これらのいずれかがPrometheusメトリックとして必要な場合は、 PGD Monitorとともに postgres_exporter を実行します。 stat_user_tables 、stat_progress_vacuum 、settings 、およびreplication コレクターは、すべてデフォルトで有効になっており、それぞれテーブルごとの統計、バキュームの進行状況、pg_settings 、および物理レプリケーションをカバーします。