メインコンテンツへスキップ
メインコンテンツへスキップ

Prometheus 連携

Private preview

Managed Postgres は、ClickHouse Cloud API で Prometheus 互換のメトリクスエンドポイントを 2 つ公開しています。

エンドポイントパス戻り値
組織/v1/organizations/{orgId}/postgres/prometheus組織内のすべての Managed Postgres サービスのメトリクス
インスタンス/v1/organizations/{orgId}/postgres/{pgId}/prometheus単一のサービスのメトリクス
注記

組織レベルのエンドポイントは、最大 100 個のサービスのメトリクスを返します。組織内の Managed Postgres サービスが 100 個を超える場合は、サポートに お問い合わせください

認証

このエンドポイントでは、OpenAPI の他の部分と同じ [API キー] を使用します。API キーの作成方法と、 組織 ID およびサービス ID の確認方法については、 OpenAPI ガイド を参照してください。

KEY_ID=mykeyid
KEY_SECRET=mykeysecret
ORG_ID=myorgid
PG_ID=mypgid

組織内の全サービスをスクレイピングする

curl -s --user "$KEY_ID:$KEY_SECRET" \
    "https://api.clickhouse.cloud/v1/organizations/$ORG_ID/postgres/prometheus"

単一のサービスをスクレイピングする

curl -s --user "$KEY_ID:$KEY_SECRET" \
    "https://api.clickhouse.cloud/v1/organizations/$ORG_ID/postgres/$PG_ID/prometheus"

レスポンス例

# HELP PostgresServiceInfo Information about PostgreSQL service, including status and version.
# TYPE PostgresServiceInfo gauge
PostgresServiceInfo{clickhouse_org="ca04a310-730d-4ce0-93dd-39f2cd2d5e6f",postgres_service="0c330583-6396-86d0-82cd-ed0f23b0d38c",postgres_service_name="my-postgres",postgres_status="running",postgres_version="18"} 1

# HELP PostgresServer_ActiveConnections Number of active connections by state.
# TYPE PostgresServer_ActiveConnections gauge
PostgresServer_ActiveConnections{clickhouse_org="ca04a310-730d-4ce0-93dd-39f2cd2d5e6f",postgres_service="0c330583-6396-86d0-82cd-ed0f23b0d38c",postgres_service_name="my-postgres",state="active"} 1
PostgresServer_ActiveConnections{clickhouse_org="ca04a310-730d-4ce0-93dd-39f2cd2d5e6f",postgres_service="0c330583-6396-86d0-82cd-ed0f23b0d38c",postgres_service_name="my-postgres",state="idle"} 4

# HELP PostgresServer_CacheHitRatio Buffer cache hit ratio: blocks served from cache vs. total blocks accessed (%).
# TYPE PostgresServer_CacheHitRatio gauge
PostgresServer_CacheHitRatio{clickhouse_org="ca04a310-730d-4ce0-93dd-39f2cd2d5e6f",postgres_service="0c330583-6396-86d0-82cd-ed0f23b0d38c",postgres_service_name="my-postgres"} 100

メトリクスの全一覧と各項目の意味については、 メトリクスリファレンスを参照してください。

Prometheus の設定

この設定では、60秒ごとに組織レベルのエンドポイントをスクレイプします。

scrape_configs:
  - job_name: "managed-postgres"
    scheme: https
    metrics_path: "/v1/organizations/<ORG_ID>/postgres/prometheus"
    static_configs:
      - targets: ["api.clickhouse.cloud"]
    basic_auth:
      username: <KEY_ID>
      password: <KEY_SECRET>
    honor_labels: true
    scrape_interval: 60s

エンドポイントはメトリクスを1分ごとに更新します。60s より短い間隔で スクレイプすると、サンプルが重複し、Gauge パネルに階段状のパターンが表示されます。

honor_labels: true を設定し、エンドポイントの postgres_servicepostgres_service_name ラベルが Prometheus によって上書きされず、保持されるようにします。

単一のサービスをスクレイプするには、metrics_path/<PG_ID> を追加します。

構築済みの Grafana ダッシュボード

すぐに利用できる Grafana ダッシュボードで、エンドポイントが公開するすべてのメトリクスを可視化できます。これには、並べ替え可能なサービステーブル、CPU とメモリの使用率、閾値アラート付きのディスク使用量、状態別の接続数、トランザクションとロールバック率、タプルアクティビティ、I/O、データベースごとのストレージ、デッドロックが含まれます。

Managed Postgres Services の Grafana ダッシュボード

ダッシュボードのインポート

ダッシュボード JSON をダウンロードする

ダッシュボード JSON をダウンロード

Grafana でインポート画面を開く

Dashboards → New → Import に移動します。JSON ファイルをアップロードするか、その内容を貼り付けます。

Prometheus データソースを選択する

DS_PROMETHEUS の入力を求められたら、前のセクションで設定したエンドポイントをスクレイプしている Prometheus データソースを選択します。

Grafana をプロビジョニングしているデプロイメントでは、JSON を ダッシュボードのプロビジョニングパスに配置します。Grafana は ${DS_PROMETHEUS} 参照を、そのインスタンスで利用可能な Prometheus データソースに対応付けます。

Template 変数

このダッシュボードでは、3 つの変数を使用できます。

  • データソース — ダッシュボードの参照先となる Prometheus データソースです。
  • サービスpostgres_service_name に対する複数選択フィルターです。 デフォルトは All です。1 つ以上のサービスを選択すると、すべてのパネルの対象をそのサービスに絞り込めます。
  • スクレイプ間隔 — 非表示の定数で、デフォルトは 60s です。これは Grafana の $__rate_interval の計算に使用されます。スクレイプ間隔が異なる場合は、 JSON 内でこの値を変更してください。

1 つのサービスに絞り込んでドリルインする

いくつかのパネルは、Service 変数で 1 つの サービスに絞り込むと、さらに詳細を確認できるように設計されています。たとえば CPU by mode パネルでは、 usersystemiowaitsteal などの CPU モードを積み上げて表示するため、スパイクの原因が application code なのか、カーネルの 処理なのか、ディスク待機なのか、あるいはハイパーバイザーの競合なのかを見分けられます。

Grafana および Datadog との連携

このエンドポイントは ClickHouse Prometheus エンドポイント と同じ形式に従っているため、そこで説明している Grafana Cloud、Grafana Alloy、Datadog OpenMetrics agent の設定は、ここでもそのまま 適用できます。metrics_path は ClickHouse 用ではなく、Managed Postgres の org または instance のパスを指すようにしてください。