Prometheus Integration
The feature supports integrating Prometheus to monitor ClickHouse Cloud services. Access to Prometheus metrics is exposed via the ClickHouse Cloud API endpoint that allows users to securely connect and export metrics into their Prometheus metrics collector. These metrics can be integrated with dashboards e.g., Grafana, Datadog for visualization.
To get started, generate an API key.
Prometheus Endpoint API to retrieve ClickHouse Cloud Metrics
API Reference
Method | Path | Description |
---|---|---|
GET | https://api.clickhouse.cloud/v1/organizations/:organizationId/services/:serviceId/prometheus?filtered_metrics=[true | false] | Returns metrics for a specific service |
GET | https://api.clickhouse.cloud/v1/organizations/:organizationId/prometheus?filtered_metrics=[true | false] | Returns metrics for all services in an organization |
Request Parameters
Name | Location | Type |
---|---|---|
Organization ID | Endpoint address | uuid |
Service ID | Endpoint address | uuid (optional) |
filtered_metrics | Query param | boolean (optional) |
Authentication
Use your ClickHouse Cloud API key for basic authentication:
Sample Response
Metric Labels
All metrics have the following labels:
Label | Description |
---|---|
clickhouse_org | Organization ID |
clickhouse_service | Service ID |
clickhouse_service_name | Service name |
Information Metrics
ClickHouse Cloud provides a special metric ClickHouse_ServiceInfo
which is a gauge
that always has the value of 1
. This metric contains all the Metric Labels as well as the following labels:
Label | Description |
---|---|
clickhouse_cluster_status | Status of the service. Could be one of the following: [awaking | running | degraded | idle | stopped ] |
clickhouse_version | Version of the ClickHouse server that the service is running |
scrape | Indicates the status of the last scrape. Could be either full or partial |
full | Indicates that there were no errors during the last metrics scrape |
partial | Indicates that there were some errors during the last metrics scrape and only ClickHouse_ServiceInfo metric was returned. |
Requests to retrieve metrics will not resume an idled service. In the case that a service is in the idle
state, only the ClickHouse_ServiceInfo
metric will be returned.
Configuring Prometheus
The Prometheus server collects metrics from configured targets at the given intervals. Below is an example configuration for the Prometheus server to use the ClickHouse Cloud Prometheus Endpoint:
Note the honor_labels
configuration parameter needs to be set to true
for the instance label to be properly populated. Additionally, filtered_metrics
is set to true
in the above example, but should be configured based on user preference.
Integrating with Grafana
Users have two primary ways to integrate with Grafana:
- Metrics Endpoint – This approach has the advantage of not requiring any additional components or infrastructure. This offering is limited to Grafana Cloud and only requires the ClickHouse Cloud Prometheus Endpoint URL and credentials.
- Grafana Alloy - Grafana Alloy is a vendor-neutral distribution of the OpenTelemetry (OTel) Collector, replacing the Grafana Agent. This can be used as a scraper, is deployable in your own infrastructure, and is compatible with any Prometheus endpoint.
We provide instructions on using these options below, focusing on the details specific to the ClickHouse Cloud Prometheus Endpoint.
Grafana Cloud with Metrics Endpoint
- Login to your Grafana Cloud account
- Add a new connection by selecting the Metrics Endpoint
- Configure the Scrape URL to point to the Prometheus endpoint and use basic auth to configure your connection with the API key/secret
- Test the connection to ensure you are able to connect
Once configured, you should see the metrics in the drop-down that you can select to configure dashboards:
Grafana Cloud with Alloy
If you are using Grafana Cloud, Alloy can be installed by navigating to the Alloy menu in Grafana and following the onscreen instructions:
This should configure Alloy with a prometheus.remote_write
component for sending data to a Grafana Cloud endpoint with an authentication token. Users then need to only modify the Alloy config (found in /etc/alloy/config.alloy
for Linux) to include a scraper for the ClickHouse Cloud Prometheus Endpoint.
The following shows an example configuration for Alloy with a prometheus.scrape
component for scraping metrics from the ClickHouse Cloud Endpoint, as well as the automatically configured prometheus.remote_write
component. Note that the basic_auth
configuration component contains our Cloud API key ID and secret as the username and password, respectively.
Note the honor_labels
configuration parameter needs to be set to true
for the instance label to be properly populated.
Grafana self-managed with Alloy
Self-managed users of Grafana can find the instructions for installing the Alloy agent here. We assume users have configured Alloy to send Prometheus metrics to their desired destination. The prometheus.scrape
component below causes Alloy to scrape the ClickHouse Cloud Endpoint. We assume prometheus.remote_write
receives the scraped metrics. Adjust the forward_to key
to the target destination if this does not exist.
Once configured, you should see ClickHouse related metrics in your metrics explorer:
Note the honor_labels
configuration parameter needs to be set to true
for the instance label to be properly populated.
Integrating with Datadog
You can use the Datadog Agent and OpenMetrics integration to collect metrics from the ClickHouse Cloud endpoint. Below is a simple example configuration for this agent and integration. Please note though that you may want to select only those metrics that you care about the most. The catch-all example below will export many thousands of metric-instance combinations which Datadog will treat as custom metrics.