This page covers self-managed ClickHouse Observability. For the recommended fully managed experience, see the documentation here.
- Automatic scaling of compute independent of storage
- Low-cost and effectively unlimited retention based on object storage
- The ability to independently isolate read and write workloads with Warehouses.
- Integrated authentication
- Automated backups
- Seamless upgrades
Secure ingestion
By default, the ClickStack OpenTelemetry Collector isn’t secured when deployed outside of the Open Source distributions and doesn’t require authentication on its OTLP ports. To secure ingestion, specify an authentication token when deploying the collector using theOTLP_AUTH_TOKEN environment variable. See “Securing the collector” for further details.
Create an ingestion user
It’s recommended to create a dedicated user for the OTel collector for ingestion into ClickHouse Cloud and ensuring ingestion is sent to a specific database e.g.otel. See “Creating an ingestion user” for further details.
Configure Time To Live (TTL)
Ensure the Time To Live (TTL) has been appropriately configured for your Self-managed ClickHouse Observability deployment. This controls how long data is retained for - the default of 3 days often needs to be modified.Estimating Resources
The following provides a model for estimating the compute and storage resources required for an observability deployment based on your expected ingest volume. The values produced are estimates only and should be used as an initial baseline - they are not a prescriptive answer. Actual requirements depend on query complexity, concurrency, retention policies, and variance in ingestion throughput. Always monitor resource usage and scale as needed. Provision compute to cover two independent workloads: ingest and query.Isolation of Queries vs IngestIn most self-managed deployments, ingest and query share the same nodes. In this case, use the Total CPUs as your baseline. Isolated scaling - where ingest and query compute are provisioned independently - is supported in ClickHouse Cloud through separate compute pools aka Warehouses.
Assumptions
Assumptions
- A 10x compression ratio for storage - typically conservative for logs and traces.
- Query SLAs of a P50 of 1.5 seconds and a P99 of 5 seconds.
- We assume most queries occur over recent data, following a log-normal distribution that peaks at around one hour and tails out to around six hours. Users may wish to provision dedicated compute to query older data. In ClickHouse Cloud this can be idle (thus not incurring costs) when not in use.
- While query compute can be scaled independently of ingest compute, it remains intrinsically linked to ingest volume. We assume as ingest increases, data density grows, resulting in larger scan volumes at query time and consequently higher query compute requirements.
For more details on refining sizing assumptions for your environment, see “Refining sizing assumptions for your environment”.
Isolating observability workloads
If you’re adding Self-managed ClickHouse Observability to an existing ClickHouse Cloud service that already supports other workloads, such as real-time application analytics, isolating observability traffic is strongly recommended. Use Managed Warehouses to create a child service dedicated to observability. This allows you to:- Isolate ingest and query load from existing applications
- Scale observability workloads independently
- Prevent observability queries from impacting production analytics
- Share the same underlying datasets across services when needed
Isolating read and write workloads
Warehouses also allow ingest and query workloads to be separated onto dedicated compute, with ingestion targeting a read-write service and the observability UI running on a read-only service. This is the recommended production topology for larger deployments. See “Isolating read and write workloads”. For larger deployments or custom sizing guidance, please contact support for a more precise estimate.Query-user permissions
A ClickHouse user used by an external query client only needs to be areadonly user with access to change the following settings:
max_rows_to_read(at least up to 1 million)read_overflow_modecancel_http_readonly_queries_on_client_closewait_end_of_query
default user in ClickHouse Cloud will have these permissions available however you’re recommended to create a new user with these permissions.