Skip to main content
Edit this page

Prometheusプロトコル

メトリクスの公開

Note

ClickHouse Cloudを使用している場合、Prometheus Integrationを使用してPrometheusにメトリクスを公開できます。

ClickHouseはその自身のメトリクスをPrometheusからのスクレイピングのために公開できます:

<prometheus>
<port>9363</port>
<endpoint>/metrics</endpoint>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
</prometheus>

<prometheus.handlers>セクションを使用して、より詳細なハンドラーを作成できます。 このセクションは<http_handlers>に似ていますが、Prometheusプロトコル用に機能します:

<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/metrics</url>
<handler>
<type>expose_metrics</type>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
</handler>
</my_rule_1>
</handlers>
</prometheus>

設定:

名前デフォルト説明
portなしメトリクス公開プロトコルを提供するためのポート。
endpoint/metricsPrometheusサーバーによるメトリクスのスクレイピング用HTTPエンドポイント。/で始まります。<handlers>セクションと併用してはいけません。
url / headers / methodなしリクエストに対する適合ハンドラーを見つけるために使用されるフィルター。<http_handlers>セクションの同じ名前のフィールドに似ています。
metricstruesystem.metricsテーブルからのメトリクスを公開します。
asynchronous_metricstruesystem.asynchronous_metricsテーブルから現在のメトリクス値を公開します。
eventstruesystem.eventsテーブルからのメトリクスを公開します。
errorstrue最後のサーバー再起動以降に発生したエラーコードごとのエラー数を公開します。この情報はsystem.errorsからも取得できます。

チェック(127.0.0.1をClickHouseサーバーのIPアドレスまたはホスト名に置き換えてください):

curl 127.0.0.1:9363/metrics

リモート書き込みプロトコル

ClickHouseはremote-writeプロトコルをサポートしています。 このプロトコルによって受信したデータは、(あらかじめ作成しておく必要がある)TimeSeriesテーブルに書き込まれます。

<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/write</url>
<handler>
<type>remote_write</type>
<database>db_name</database>
<table>time_series_table</table>
</handler>
</my_rule_1>
</handlers>
</prometheus>

設定:

名前デフォルト説明
portなしremote-writeプロトコルを提供するためのポート。
url / headers / methodなしリクエストに対する適合ハンドラーを見つけるために使用されるフィルター。<http_handlers>セクションの同じ名前のフィールドに似ています。
tableなしremote-writeプロトコルで受信したデータを書き込むTimeSeriesテーブルの名前。この名前にはオプションでデータベース名を含めることができます。
databaseなしtable設定で指定されていない場合、table設定で指定されたテーブルがあるデータベースの名前。

リモート読み取りプロトコル

ClickHouseはremote-readプロトコルをサポートしています。 このプロトコルを通じて、TimeSeriesテーブルからデータを読み取り、送信します。

<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/read</url>
<handler>
<type>remote_read</type>
<database>db_name</database>
<table>time_series_table</table>
</handler>
</my_rule_1>
</handlers>
</prometheus>

設定:

名前デフォルト説明
portなしremote-readプロトコルを提供するためのポート。
url / headers / methodなしリクエストに対する適合ハンドラーを見つけるために使用されるフィルター。<http_handlers>セクションの同じ名前のフィールドに似ています。
tableなしremote-readプロトコルで送信するために読み取るTimeSeriesテーブルの名前。この名前にはオプションでデータベース名を含めることができます。
databaseなしtable設定で指定されていない場合、table設定で指定されたテーブルがあるデータベースの名前。

複数プロトコル用の設定

複数のプロトコルを一つの場所に一緒に指定することができます:

<prometheus>
<port>9363</port>
<handlers>
<my_rule_1>
<url>/metrics</url>
<handler>
<type>expose_metrics</type>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
</handler>
</my_rule_1>
<my_rule_2>
<url>/write</url>
<handler>
<type>remote_write</type>
<table>db_name.time_series_table</table>
</handler>
</my_rule_2>
<my_rule_3>
<url>/read</url>
<handler>
<type>remote_read</type>
<table>db_name.time_series_table</table>
</handler>
</my_rule_3>
</handlers>
</prometheus>