暴露 ClickHouse 服务器指标
如果你使用的是 ClickHouse Cloud,可以通过 Prometheus 集成 向 Prometheus 暴露指标。
<prometheus.handlers> 部分可用于在同一端口上配置更复杂的处理程序。
该部分与 <http_handlers> 类似,但适用于 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 请求的内置处理程序。上述前缀通过一个处理程序公开这些端点:
该示例未在处理程序中指定
database 和 table。每个请求都必须提供 table 查询参数。还可以提供 database、使用如 prometheus.metrics 这样的限定表名,或者省略数据库以使用 default。这样,一个处理程序即可为多个 TimeSeries 表提供服务。
若要让所有请求使用同一个固定表,请在处理程序中进行配置:
通过 远程写入 摄取指标
prometheus.metrics 表。
使用 PromQL 查询
promql 方言及表函数支持的函数和聚合运算符列表,请参阅支持的 PromQL 功能。
Grafana
/api/v1 之前的部分结尾:
/api/v1/query 或 /api/v1/query_range 追加到此基础 URL,并在每个请求中添加 customQueryParameters。
目前仅实现了查询端点
/api/v1/query 和 /api/v1/query_range。Grafana Prometheus 数据源用于浏览标记、模板变量和查询构建器自动补全的元数据端点 (/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 远程读取协议的支持。
配置 Prometheus 服务器从同一个 TimeSeries 表中读取数据: