ClickHouse/docs/ja/interfaces/prometheus.md
2024-11-18 11:58:58 +09:00

6.8 KiB
Raw Blame History

slug sidebar_position sidebar_label
/ja/interfaces/prometheus 19 Prometheusプロトコル

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 /metrics Prometheusサーバーによるメトリクスのスクレイピング用HTTPエンドポイント。/で始まります。<handlers>セクションと併用してはいけません。
url / headers / method なし リクエストに対する適合ハンドラーを見つけるために使用されるフィルター。<http_handlers>セクションの同じ名前のフィールドに似ています。
metrics true system.metricsテーブルからのメトリクスを公開します。
asynchronous_metrics true system.asynchronous_metricsテーブルから現在のメトリクス値を公開します。
events true system.eventsテーブルからのメトリクスを公開します。
errors true 最後のサーバー再起動以降に発生したエラーコードごとのエラー数を公開します。この情報は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>