ClickHouse サーバーメトリクスを公開する
ClickHouse Cloud を使用している場合は、Prometheus インテグレーションを使用して、メトリクスを Prometheus に公開できます。
<prometheus.handlers> セクションを使用すると、同じポート上でより拡張されたハンドラーを作成できます。
This section is similar to <http_handlers> but works for prometheus プロトコル:
エンドポイントを確認します:
Prometheus HTTP API と PromQL
TimeSeries テーブルを介して Prometheus HTTP API を実装しています。単一のハンドラーが、リモート書き込み、リモート読み取り、インスタント PromQL クエリ、範囲 PromQL クエリを処理します。
前提条件
allow_experimental_time_series_table 設定を有効にします。
TimeSeries テーブルを作成します。
allow_experimental_time_series_tableを有効にします。
Prometheus API を設定する
<defaults/> は、/ping などのエンドポイントや SQL リクエスト用の組み込みハンドラーを維持します。上記のプレフィックスにより、これらのエンドポイントを 1 つのハンドラー経由で公開します。
この例では、ハンドラーに
database と table を指定していません。各リクエストで table クエリパラメータを指定する必要があります。また、database を指定する、prometheus.metrics のような完全修飾テーブル名を使用する、またはデータベースを省略して default を使用することもできます。これにより、1 つのハンドラーで複数の TimeSeries テーブルを処理できます。
すべてのリクエストで 1 つの固定テーブルを使用するには、ハンドラーで設定します。
リモート書き込み を使用してメトリクスを取り込む
prometheus.metrics テーブルに送信します。
PromQL でクエリを実行する
promql 方言、およびテーブル関数で使用される関数と集約演算子の一覧については、サポートされている PromQL 機能を参照してください。
Grafana
/api/v1 の直前までとなるように、Prometheus データソースを設定します。
/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 エントリポイント
promql 方言、および prometheusQuery と prometheusQueryRange のテーブル関数で、同じ PromQL コンバーターを使用します。
clickhouse-client で PromQL を直接実行します。
リモート読み取り でメトリクスを読み取る
/prometheus/api/v1/read で Prometheus リモート読み取り プロトコルをサポートしています。
同じ TimeSeries テーブルから読み取るように Prometheus サーバーを設定します。