Prometheus 集成
此功能支持集成 Prometheus 以监控 ClickHouse Cloud 服务。通过 ClickHouse Cloud API 提供的 Prometheus 指标端点,您可以安全地连接并将指标导出到 Prometheus 指标采集器。这些指标可以集成到 Grafana、Datadog 等可视化仪表板中。
要开始使用,请先生成一个 API 密钥。
用于拉取 ClickHouse Cloud 指标的 Prometheus 端点 API
API 参考
| Method | Path | Description |
|---|---|---|
| GET | https://api.clickhouse.cloud/v1/organizations/:organizationId/services/:serviceId/prometheus?filtered_metrics=[true | false] | 返回指定服务的指标数据 |
| GET | https://api.clickhouse.cloud/v1/organizations/:organizationId/prometheus?filtered_metrics=[true | false] | 返回指定组织下所有服务的指标数据 |
请求参数
| Name | Location | Type |
|---|---|---|
| Organization ID | 端点地址 | uuid |
| Service ID | 端点地址 | uuid(可选) |
| filtered_metrics | 查询参数 | boolean(可选) |
身份验证
使用 ClickHouse Cloud API 密钥进行基本身份验证:
示例响应
指标标签
所有指标都包含以下标签:
| 标签 | 说明 |
|---|---|
| clickhouse_org | 组织 ID |
| clickhouse_service | 服务 ID |
| clickhouse_service_name | 服务名称 |
对于 ClickPipes,指标还将包含以下标签:
| 标签 | 说明 |
|---|---|
| clickpipe_id | ClickPipe ID |
| clickpipe_name | ClickPipe 名称 |
| clickpipe_source | ClickPipe 源类型 |
信息指标
ClickHouse Cloud 提供了一个特殊的指标 ClickHouse_ServiceInfo,它是一个 gauge 类型指标,其值始终为 1。该指标包含所有 Metric Labels,以及以下标签:
| Label | Description |
|---|---|
| clickhouse_cluster_status | 服务的状态,可能为以下之一:[awaking | running | degraded | idle | stopped] |
| clickhouse_version | 服务当前运行的 ClickHouse 服务器版本 |
| scrape | 指示最近一次抓取的状态,可能为 full 或 partial |
| full | 指示最近一次指标抓取过程中没有发生错误 |
| partial | 指示最近一次指标抓取过程中存在错误,并且只返回了 ClickHouse_ServiceInfo 指标。 |
用于获取指标的请求不会唤醒处于空闲状态的服务。如果服务处于 idle 状态,将只返回 ClickHouse_ServiceInfo 指标。
对于 ClickPipes,有一个类似的 ClickPipes_Info gauge 指标,除了 Metric Labels 之外,还包含以下标签:
| Label | Description |
|---|---|
| clickpipe_state | 当前管道的状态 |
配置 Prometheus
Prometheus 服务器会按指定的时间间隔从已配置的目标中收集指标。下面是一个 Prometheus 服务器的示例配置,用于对接 ClickHouse Cloud 的 Prometheus Endpoint:
请注意,需要将 honor_labels 配置参数设置为 true,才能正确填充 instance 标签。另 外,在上述示例中 filtered_metrics 被设置为 true,但应根据用户的偏好和需求进行配置。
集成 Grafana
用户可以通过两种主要方式与 Grafana 集成:
- Metrics Endpoint – 这种方式的优点是不需要任何额外组件或基础设施。该方案仅适用于 Grafana Cloud,只需要 ClickHouse Cloud Prometheus Endpoint 的 URL 和凭证。
- Grafana Alloy - Grafana Alloy 是与厂商无关的 OpenTelemetry (OTel) Collector 发行版,用于替代 Grafana Agent。它可以用作抓取器,可部署在您自己的基础设施中,并与任何 Prometheus Endpoint 兼容。
下面我们提供使用这些选项的说明,重点介绍与 ClickHouse Cloud Prometheus Endpoint 相关的具体细节。
使用 metrics endpoint 的 Grafana Cloud
- 登录到你的 Grafana Cloud 账户
- 选择 Metrics Endpoint 以添加一个新的连接
- 将 Scrape URL 配置为指向 Prometheus endpoint,并使用 basic auth 结合 API key/secret 配置连接
- 测试连接以确保可以正常连通

配置完成后,你应该可以在下拉菜单中看到可用于配置 dashboards 的 metrics:


使用 Grafana Cloud 搭配 Alloy
如果您使用 Grafana Cloud,可以在 Grafana 中进入 Alloy 菜单,并按照屏幕上的指引安装 Alloy:

这会将 Alloy 配置为使用 prometheus.remote_write 组件,通过认证令牌将数据发送到 Grafana Cloud 端点。之后,用户只需要修改 Alloy 配置(在 Linux 上位于 /etc/alloy/config.alloy),以添加一个用于抓取 ClickHouse Cloud Prometheus 端点的 scraper。
下面是一个 Alloy 配置示例,其中包含一个用于从 ClickHouse Cloud 端点抓取指标的 prometheus.scrape 组件,以及自动配置好的 prometheus.remote_write 组件。请注意,basic_auth 配置组件中分别将 Cloud API key ID 和 secret 用作用户名和密码。
请注意,需要将 honor_labels 配置参数设置为 true,才能正确填充 instance 标签的值。
使用 Alloy 的自管理 Grafana
Grafana 的自管理用户可以在此处找到安装 Alloy agent 的说明。我们假设用户已经将 Alloy 配置为将 Prometheus 指标发送到其期望的目标端。下面的 prometheus.scrape 组件会使 Alloy 抓取 ClickHouse Cloud 端点的指标。我们假设 prometheus.remote_write 会接收这些被抓取的指标。如果没有该目标,请将 forward_to 键调整为目标端。
完成配置后,你应该能在 Metrics Explorer 中看到与 ClickHouse 相关的指标:

请注意,需要将 honor_labels 配置参数设置为 true,才能正确写入 instance 标签。
与 Datadog 集成
可以使用 Datadog 的 Agent 和 OpenMetrics 集成 从 ClickHouse Cloud 端点采集指标。下面是该 Agent 和集成的一个简单示例配置。请注意,实际使用时可能只需要选择对自己最重要的那部分指标。下面这个兜底式示例会导出成千上万种指标与实例的组合,Datadog 会将这些视为自定义指标。
