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
、および物理レプリケーションをカバーします。