Operations
Track active merges, historical merge performance, mutations, part moves, and the part-event timeline for all MergeTree tables.
Watch the background work MergeTree engines do continuously — merges, mutations, part moves — and audit the full part-event timeline for every table.
Prop
Type
What it does
Operations covers the background work MergeTree engines do continuously:
- Merges — which parts are being merged right now, progress percentage, estimated completion, rows and bytes processed.
- Merge performance — historical trends from the part log: merge size, duration, and throughput over time.
- Mutations —
ALTER TABLE ... UPDATE/DELETEoperations: how many parts remain, any failures. - Moves — parts currently being moved between disks or volumes due to TTL or storage policy rules.
- Part log — the full part-event history: part creation, merges, mutations, downloads from replicas, and removals.
All pages are read-only except the kill-mutation action on /mutations.
Pages
| Page | Route | What it shows | System tables |
|---|---|---|---|
| Merges | /merges | Active merge list: table, progress %, elapsed, rows/bytes merged, estimated finish | system.merges |
| Merge Performance | /merge-performance | Historical merge stats from the part log: size buckets, duration trends | system.part_log |
| Mutations | /mutations | Pending and completed mutations: parts_to_do, is_done, failure reason; kill action | system.mutations |
| Moves | /moves | In-progress part moves: source/target disk, part name, size, elapsed | system.moves |
| Part Log | /part-log | Part lifecycle events: NewPart, MergedPart, MutatedPart, DownloadedPart, RemovedPart | system.part_log |
Using it
- Open
/mergesto see merges in flight — it doubles as the entry point for the Operations section in the nav (feature idoperations). - Check
/merge-performancefor merge size and duration trends pulled from the part log. - Use
/mutationsto trackALTER ... UPDATE/DELETEprogress, and stop a stuck mutation with the kill-mutation action. - Watch
/movesduring TTL or storage-policy migrations between disks and volumes. - Browse
/part-logfor the complete part lifecycle across every table.
Permissions & access
All sub-routes share the operations feature id.
CHM_FEATURE_OPERATIONS_ACCESS=authenticatedCHM_FEATURE_OPERATIONS_ENABLED=false
CHM_DISABLED_FEATURES=operations# CHM_CONFIG_FILE (TOML)
[features.operations]
access = "authenticated"KILL MUTATION privilege required
The kill-mutation button on /mutations issues KILL MUTATION. The ClickHouse user must have ALTER TABLE privilege (or specifically KILL MUTATION). Without it the action returns an error.
Configuration
No feature-specific configuration. Global settings apply:
CLICKHOUSE_MAX_EXECUTION_TIME=60Notes & limitations
part_log must be enabled
system.part_log requires <part_log> to be enabled in the ClickHouse server config. It is disabled by default on some distributions. If absent, /merge-performance and /part-log show a table-not-found notice.
system.moves— only populated when a TTL or storage policy move is actively in progress. The table is empty between moves; this is normal.- Merge progress —
system.mergesshows only active merges. Completed merges appear insystem.part_logwith event typeMergedPart. - The
/mergesroute is also the entry point for the Operations section in the nav (feature idoperations).