Know exactly what flows into your cluster
Rows, bytes and insert queries over time, uncompressed ingest vs bytes written to disk, write amplification from merges, and per-table ingestion — with smart sections that appear only when your cluster needs them.
Rows, bytes and inserts — plus what actually hit disk
Last-24h KPIs with deltas, then time series for rows ingested, insert queries (successful vs failed, so ingestion incidents jump out), uncompressed data ingested and compressed bytes written to disk. Comparing the last two reads your effective compression over time.
- query_log measures what clients sent; part_log measures what was stored
- Cluster-wide compression ratio from active parts
- Per-chart date ranges: hour, day and month granularity
Your traffic page, your layout
One-click presets — Auto, Ingest focus, Storage & merges, Everything — or per-section Auto / Show / Hide toggles. Auto uses smart probes (part_log availability, cluster shape, PeerDB activity) so you never stare at empty cards on a single-node server.
- Presets are just section maps — apply one, then fine-tune
- Auto hides a section when its data source is unavailable
- Saved per browser, no server config needed
Replication, distribution and PeerDB — when you have them
On replicated or sharded clusters, Traffic adds replica fetch traffic and distributed query fan-out. Running a PeerDB pipeline? A PeerDB Ingestion section tracks CDC rows flowing in from Postgres. Neither renders on clusters where they do not apply.
- Replica fetches: bytes downloaded between replicas
- Distributed queries: initial vs secondary volume
- PeerDB rows over time, linked to the full PeerDB feature
More of Traffic in action
Everything in the box
Ingestion KPIs
Rows, bytes, insert queries and compression ratio for the last 24h, each with a delta vs the previous day.
Failed-insert visibility
Insert query volume split into successful and failed, so broken pipelines are visible at a glance.
Compression story
Uncompressed ingest vs compressed on-disk bytes, side by side, plus per-table compression ratios.
Write amplification
How many bytes merges rewrite per byte ingested — the true background cost of your insert pattern.
Top tables by ingestion
Tables ranked by rows, on-disk bytes and parts created in the last 24h, rendered as background bars.
Graceful degradation
part_log-based views show an informative empty state when part_log is off — nothing breaks.
Common questions
Why do "data ingested" and "written to disk" differ?
Data ingested is the uncompressed payload from system.query_log; written to disk is the compressed part size from system.part_log. The ratio between them is your effective compression.
Some sections are missing — is that a bug?
No. Auto mode hides sections whose data source is unavailable: part_log disabled, no replication, no PeerDB. Use the View popover to force-show any section.
Does it need extra ClickHouse configuration?
The KPI strip and query_log charts work out of the box. Bytes on Disk, merges and top-tables views need system.part_log, which is opt-in on some distributions.
More chmonitor features
Start monitoring — advisor and alerts built in
Open the hosted dashboard and connect a cluster, or self-host with Docker, Kubernetes, or from source. Self-hosting is always free.