[go: up one dir, main page]

跳到主要内容
跳到主要内容

Prometheus 协议

暴露指标

备注

如果您正在使用 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>
    <histograms>true</histograms>
    <dimensional_metrics>true</dimensional_metrics>
</prometheus>

Section `<prometheus.handlers>` can be used to make more extended handlers.
This section is similar to [<http_handlers>](/interfaces/http) but works for prometheus protocols:

```xml
<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>
                <histograms>true</histograms>
                <dimensional_metrics>true</dimensional_metrics>
            </handler>
        </my_rule_1>
    </handlers>
</prometheus>

设置:

名称默认值描述
portnone用于提供暴露指标协议的端口。
endpoint/metricsPrometheus 服务器抓取指标的 HTTP 端点。以 / 开头。不得与 <handlers> 部分一起使用。
url / headers / methodnone用于找到请求匹配处理程序的过滤器。与 <http_handlers> 部分中的同名字段类似。
metricstruesystem.metrics 表中暴露指标。
asynchronous_metricstruesystem.asynchronous_metrics 表中暴露当前指标值。
eventstruesystem.events 表中暴露指标。
errorstrue暴露自上次服务器重启以来按错误代码发生的错误数量。该信息还可以从 system.errors 获取。
histogramstruesystem.histogram_metrics 暴露直方图指标
dimensional_metricstruesystem.dimensional_metrics 暴露维度指标

检查(将 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>

设置:

名称默认值描述
portnone用于提供 remote-write 协议的端口。
url / headers / methodnone用于找到请求匹配处理程序的过滤器。与 <http_handlers> 部分中的同名字段类似。
tablenone要写入通过 remote-write 协议接收到的数据的 TimeSeries 表的名称。该名称可以选择性地包含数据库名称。
databasenone如果在 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>

设置:

名称默认值描述
portnone用于提供 remote-read 协议的端口。
url / headers / methodnone用于找到请求匹配处理程序的过滤器。与 <http_handlers> 部分中的同名字段类似。
tablenone要读取并通过 remote-read 协议发送数据的 TimeSeries 表的名称。该名称可以选择性地包含数据库名称。
databasenone如果在 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>
                <histograms>true</histograms>
                <dimensional_metrics>true</dimensional_metrics>
            </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>