Skip to content

ClickHouse Cloud Service

ClickHouse Cloud is a managed verion of ClickHouse DB. It is managed by ClickHouse Inc.

We are adding ClickHouse Cloud databases to the GitLab.com staging and production environments.

Any questions please reach out to the team in Slack via #f_clickhouse or tag @gitlab-org/maintainers/clickhouse

For a list of team members responsible for provisioning and deprovisioning ClickHouse Cloud DBs see tech_stack.yml

The management console for ClickHouse Cloud can be accessed at:

https://clickhouse.cloud/services

Log in via Google SSO.

You will need to have access granted by a ClickHouse Cloud admin to access the management console. An Access Request is a typical way of granting this permission. (example)

Sidekiq and the Web tier will connect via HTTP on port 8443 via a public IP/host. Inbound connection can be allow listed via IPv4 ranges. See ClickHouse IP Access List Docs for details.

GitLab.com Staging Database has the following attributes:

Name: gitlab-com-staging Console URL: https://clickhouse.cloud/service/57fa3208-48a1-494b-9f44-ea895895a369

GitLab.com Production Database has the following attributes:

Name: gitlab-com-production Console URL: https://clickhouse.cloud/service/ad02dd6a-1dde-4f8f-858d-37462fd06058

Runbook for restoring a ClickHouse Cloud instance from a backup after failure of an instance. [Link]

Built in Monitoring Dashboards can be accessed via the ClickHouse Cloud Console.

A dashboard for monitoring and alerting performance metrics has been configured in Runbooks, clickhouse-cloud-services

Alerting has been configured through Runbooks to alert into Slack channel #f_clickhouse_infra_alerts

Several analytics features are implemented using ClickHouse at GitLab. Contribution Analytics was one of the first features to make use of ClickHouse; originally implemented using PostgreSQL, which performed poorly, the ClickHouse-based implementation provided a much better performance.

In case of an outage in ClickHouse cloud services, the impact would include:

While the option is there to switch back to PostgreSQL by disabling ClickHouse, this could be helpful in restoring some features that are implmeneted in both PG and CH, but won’t be helpful for features that depend only on CH.

When we disable the analytics ClickHouse integration for features that exist in PG too (Contribution Analytics), we’re not creating a data split. Data is always present in PG and it’s the source of truth. When ClickHouse integration is disabled, the backend falls back to querying PG. Once the integration is switched back on, background workers will ensure data during the outage is synced to ClickHouse.