Prometheus 协议
暴露指标
注意
ClickHouse Cloud 目前不支持连接到 Prometheus。要获知此功能何时可用,请联系 [email protected]。
ClickHouse 可以暴露自己的指标,供 Prometheus 抓取
<prometheus>
<port>9363</port>
<endpoint>/metrics</endpoint>
<metrics>true</metrics>
<asynchronous_metrics>true</asynchronous_metrics>
<events>true</events>
<errors>true</errors>
</prometheus>
Section `<prometheus.handlers>` can be used to make more extended handlers.
This section is similar to [<http_handlers>](/en/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>
</handler>
</my_rule_1>
</handlers>
</prometheus>
设置
名称 | 默认值 | 描述 | |
---|---|---|---|
端口 | 无 | 用于提供暴露指标协议的端口。 | |
端点 | /metrics | Prometheus 服务器抓取指标的 HTTP 端点。以/ 开头。不应与<handlers> 部分一起使用。 | |
url / headers / method | 无 | 用于查找与请求匹配的处理程序的过滤器。类似于<http_handlers>部分中名称相同的字段。 | |
指标 | true | 暴露来自system.metrics表的指标。 | |
异步指标 | true | 暴露来自system.asynchronous_metrics表的当前指标值。 | |
事件 | true | 暴露来自system.events表的指标。 | |
错误 | true | 暴露自上次服务器重启以来发生的错误代码的错误数量。此信息也可以从system.errors中获取。 |
检查(将127.0.0.1
替换为 ClickHouse 服务器的 IP 地址或主机名)
curl 127.0.0.1:9363/metrics
远程写入协议
ClickHouse 支持远程写入协议。通过此协议接收数据并写入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>
设置
名称 | 默认值 | 描述 | |
---|---|---|---|
端口 | 无 | 用于提供remote-write 协议的端口。 | |
url / headers / method | 无 | 用于查找与请求匹配的处理程序的过滤器。类似于<http_handlers>部分中名称相同的字段。 | |
表 | 无 | 用于写入通过remote-write 协议接收的数据的TimeSeries表的名称。此名称也可以包含数据库的名称。 | |
数据库 | 无 | 如果在table 设置中未指定,则包含table 设置中指定的表的数据库的名称。 |
远程读取协议
ClickHouse 支持远程读取协议。从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>
设置
名称 | 默认值 | 描述 | |
---|---|---|---|
端口 | 无 | 用于提供remote-read 协议的端口。 | |
url / headers / method | 无 | 用于查找与请求匹配的处理程序的过滤器。类似于<http_handlers>部分中名称相同的字段。 | |
表 | 无 | 用于读取要通过remote-read 协议发送的数据的TimeSeries表的名称。此名称也可以包含数据库的名称。 | |
数据库 | 无 | 如果在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>