Skip to main content

ClickHouse サーバーメトリクスを公開する

ClickHouse Cloud を使用している場合は、Prometheus インテグレーションを使用して、メトリクスを Prometheus に公開できます。
Prometheus サーバーが ClickHouse 独自のメトリクスをスクレイピングする必要がある場合は、専用ポートを設定します:
<prometheus.handlers> セクションを使用すると、同じポート上でより拡張されたハンドラーを作成できます。 This section is similar to <http_handlers> but works for prometheus プロトコル:
設定: エンドポイントを確認します:

Prometheus HTTP API と PromQL

ClickHouse は TimeSeries テーブルを介して Prometheus HTTP API を実装しています。単一のハンドラーが、リモート書き込み、リモート読み取り、インスタント PromQL クエリ、範囲 PromQL クエリを処理します。

前提条件

テーブルを作成しアクセスするユーザーに対して、allow_experimental_time_series_table 設定を有効にします。
データベースと TimeSeries テーブルを作成します。
HTTP APIリクエストの場合は、APIユーザーのprofileでallow_experimental_time_series_tableを有効にします。

Prometheus API を設定する

ClickHouse のメイン HTTP ポートで、プレフィックスルーティングされたハンドラーを 1 つ設定します。
<defaults/> は、/ping などのエンドポイントや SQL リクエスト用の組み込みハンドラーを維持します。上記のプレフィックスにより、これらのエンドポイントを 1 つのハンドラー経由で公開します。 この例では、ハンドラーに databasetable を指定していません。各リクエストで table クエリパラメータを指定する必要があります。また、database を指定する、prometheus.metrics のような完全修飾テーブル名を使用する、またはデータベースを省略して default を使用することもできます。これにより、1 つのハンドラーで複数の TimeSeries テーブルを処理できます。 すべてのリクエストで 1 つの固定テーブルを使用するには、ハンドラーで設定します。
ハンドラーで設定されたテーブルは、リクエストパラメータで上書きできません。 ルーティングとハンドラーの設定:

リモート書き込み を使用してメトリクスを取り込む

ClickHouse は Prometheus remote-write プロトコルをサポートしています。Prometheus がハンドラーに書き込むように設定します。
Prometheus はサンプルを prometheus.metrics テーブルに送信します。

PromQL でクエリを実行する

instant-query エンドポイントを使用して、特定の時点における PromQL 式を評価します。
range-query エンドポイントを使用して、指定した時間範囲で式を評価します。
HTTP API、promql 方言、およびテーブル関数で使用される関数と集約演算子の一覧については、サポートされている PromQL 機能を参照してください。

Grafana

ベース URL が /api/v1 の直前までとなるように、Prometheus データソースを設定します。
Grafana は、このベース URL に /api/v1/query または /api/v1/query_range を付加し、各リクエストに customQueryParameters を追加します。
実装されているのは、クエリエンドポイント /api/v1/query/api/v1/query_range のみです。Grafana の Prometheus データソースがラベルの参照、Template 変数、クエリビルダーでの自動補完に使用するメタデータエンドポイント (/api/v1/series/api/v1/labels/api/v1/label/<name>/values) は実装されておらず、エラーを返します。クエリビルダーではなく、コードモードで PromQL 式を記述してください。

SQL エントリポイント

ClickHouse では、HTTP API、promql 方言、および prometheusQueryprometheusQueryRange のテーブル関数で、同じ PromQL コンバーターを使用します。 clickhouse-client で PromQL を直接実行します。
テーブル関数を使用して、SQLクエリ内にPromQLを埋め込みます。

リモート読み取り でメトリクスを読み取る

ClickHouse は、/prometheus/api/v1/readPrometheus リモート読み取り プロトコルをサポートしています。 同じ TimeSeries テーブルから読み取るように Prometheus サーバーを設定します。
最終更新日 2026年8月18日