writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
clickhouse-prod-checklistProduction readiness checklist for ClickHouse — server tuning, backup, monitoring, and deployment verification. Use when launching a ClickHouse deployment, doing a go-live review, or auditing production readiness before flipping traffic. Trigger with "clickhouse production", "clickhouse go-live", "clickhouse launch checklist", "production clickhouse", "clic…
Independent GitHub snapshot · Automated classification · Original documentation governs
name: clickhouse-prod-checklist description: | Production readiness checklist for ClickHouse — server tuning, backup, monitoring, and deployment verification. Use when launching a ClickHouse deployment, doing a go-live review, or auditing production readiness before flipping traffic. Trigger with "clickhouse production", "clickhouse go-live", "clickhouse launch checklist", "production clickhouse", "clickhouse prod ready". allowed-tools: Read, Bash(clickhouse-client:), Bash(curl:) version: 1.7.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Comprehensive go-live checklist for ClickHouse covering schema and engine design,
server tuning, backup configuration, monitoring, security, application
integration, and operational readiness. Walk the eight sections top to bottom;
each is a gate that must be green before production traffic is allowed. Deep
configuration — server XML, backup SQL, and verification queries — lives in
references/ so this file stays a fast operational scan.
Before starting the checklist, confirm the following are in place:
system.* tables and, for
self-hosted, edit config.xml / users.xml.Work each section in order. Every box must be checked (or explicitly waived with a reason) before go-live.
MergeTree family engines (not Memory, Log, or TinyLog)ORDER BY columns match primary filter/group patternsPARTITION BY is coarse (monthly or weekly, never by ID)TTL configured for data retention policyLowCardinality(String) used for low-cardinality columnsCODEC(ZSTD) applied to large String/JSON columnsFINAL or dedup logic if upserts neededSet memory to ~80% of RAM, cap per-query memory and execution time, and size the merge pools to the core count. ClickHouse Cloud manages these for you.
<max_server_memory_usage_to_ram_ratio>0.8</max_server_memory_usage_to_ram_ratio>
<max_concurrent_queries>150</max_concurrent_queries>
<max_execution_time>300</max_execution_time> <!-- 5 min: cap runaway scans -->
Full annotated config.xml / users.xml block and tuning rationale:
server configuration reference.
Native BACKUP ... TO S3 syntax, incremental base+delta backups, and recovery
drill guidance: backup & recovery reference.
/metrics via Exporter or Cloud endpoint)Health-check queries and the full metrics list: monitoring & verification reference.
clickhouse-security-basics)max_open_connections)client.close()clickhouse-rate-limits)/health handler)clickhouse-incident-runbook)clickhouse-migration-deep-dive)Immediately before flipping traffic, run the three go-live verification queries (part health, pending mutations, replication lag) from the monitoring & verification reference under "Go-live verification queries". A clean launch returns zero rows from the mutations and replicas queries.
Completing this checklist produces a go / no-go readiness decision:
| Issue | Detection | Action |
|---|---|---|
| Parts > 300 | Monitoring alert | Review insert patterns, wait for merges |
| Disk > 80% | Disk alert | Add storage, drop old partitions |
| Query p95 > 5s | Latency alert | Check system.query_log for slow queries |
| Replication lag | Replica check | Investigate network, merge backlog |
Minimal health probe (load-balancer readiness check):
SELECT 1;
Go-live part-health check (fails the launch if any table exceeds its active-parts threshold):
SELECT database, table, count() AS parts, sum(rows) AS rows,
formatReadableSize(sum(bytes_on_disk)) AS size
FROM system.parts WHERE active
GROUP BY database, table ORDER BY sum(bytes_on_disk) DESC;
For the full thorough health-check query, the incremental S3 backup example, and
the annotated server-config block, see the references/ files linked from each
section above.
After a clean go-live, keep the deployment healthy: schedule a periodic backup
restore drill, wire the monitoring alerts into your on-call rotation, and review
clickhouse-incident-runbook for response procedures. For SDK version upgrades,
see clickhouse-upgrade-migration.