Purpose-built monitoring for ClickHouse OLAP workloads. Deep visibility into parts, merges, mutations, and query performance — the MergeTree internals that drive cluster stability.
Parts & Merges
ClickHouse performance is driven by part merges. Basira gives you full visibility into part lifecycle and merge health.
Every part across your tables: row counts, bytes on disk, compression ratios, part type (wide/compact), and active status.
Track merge depth across parts to understand if merges are keeping up with inserts or falling behind.
Understand how well your data compresses by table and column. Identify tables where codec changes could save storage.
Mutations
Mutations in ClickHouse are asynchronous and can silently stall. Basira tracks them so you don't have to.
All in-progress mutations, their target tables, and how many parts remain to be processed.
Know when mutations finish and whether they succeeded. Catch stuck mutations before they cause data inconsistency.
Server Metrics
Monitor the metrics that matter for ClickHouse cluster stability and throughput.
Track async insert buffer sizes, flush frequency, and failure rates. Ensure your ingest pipeline stays healthy.
Monitor background merge pool threads, active merges, and queue depth. Avoid merge bottlenecks that degrade query performance.
Track memory usage, active connections, and query concurrency across your ClickHouse instances.
Query Performance
Basira reads from system.query_log to give you full visibility into every query executed against your ClickHouse cluster.
Query text, execution times, memory usage, read/written rows and bytes, exceptions, and query kind (SELECT, INSERT, ALTER).
Track memory usage and I/O per query to understand which queries are most expensive.
See how query performance changes over time. Catch regressions from schema changes or data growth.
Active Query Monitoring
Live view of all queries currently executing on your ClickHouse cluster via system.processes.
Every running query with elapsed time, memory usage, read rows/bytes, and written rows/bytes.
See which active queries are consuming the most memory and I/O in real time.
Automatically flag queries that exceed configurable duration thresholds.
Replication
Track replication health for ReplicatedMergeTree tables across your cluster.
Monitor queue sizes, inserts lag, and merge status for replicated tables.
Know which replicas are in sync and which are falling behind. Catch issues before they affect query results.
Basira vs. DIY
Most teams monitoring ClickHouse today glue together Grafana dashboards on top of system.query_log, system.parts, and system.metrics. It works — until it doesn't.
| Grafana + system tables | Basira | |
|---|---|---|
| Setup time | Days to weeks — custom SQL, dashboard design, alert wiring | ~5 minutes — Helm install, read-only user, done |
| Required expertise | Deep knowledge of ClickHouse system tables and their version quirks | None — metrics and thresholds are built in |
| Part and merge monitoring | Possible, but you write and tune the queries | Out of the box, with sensible default thresholds |
| Query fingerprinting | Manual normalization or raw query text | Automatic — grouped by fingerprint, not individual executions |
| Cost of querying system tables | Your cluster pays — heavy dashboards can compete with real workload | Agent collects at configurable intervals and ships to an external backend |
| Upgrade burden | You maintain dashboards as ClickHouse versions change | Agent is updated centrally — your dashboards keep working |
| PostgreSQL in the same view | Separate dashboards, separate data sources | Unified — one tool, one price, every database |
Rolling your own is a reasonable path for teams with deep ClickHouse expertise and time to invest. For everyone else, Basira gets you production-grade ClickHouse observability without the dashboard-maintenance tax. More context in our write-up on why the ClickHouse monitoring gap exists.
Agent Setup
A lightweight Go binary deployed via Helm. Connects to ClickHouse system tables with a read-only user.
The agent connects with a ClickHouse user that has SELECT access on system tables only. It never modifies your data.
The agent auto-detects ClickHouse from the DSN. No manual engine configuration needed.
Single binary, ~20MB memory. Polls at configurable intervals. Designed to be invisible on your server.
Up and running in under 5 minutes. No credit card required.
Start Free Trial