Track active merges, historical merge performance, mutations, part moves, and the part-event timeline for all MergeTree tables.
| Routes | /merges, /merge-performance, /mutations, /moves, /part-log |
| Feature id | operations |
| Default access | public |
| Requires auth | No (set CHM_FEATURE_OPERATIONS_ACCESS=authenticated to gate) |
| System tables | system.merges, system.mutations, system.moves, system.part_log |
| ClickHouse grants | SELECT on the system tables above; KILL MUTATION for the kill-mutation action |
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 |
Permissions & access
All sub-routes share the operations feature id:
## Gate to authenticated users
CHM_FEATURE_OPERATIONS_ACCESS=authenticated
## Disable entirely
CHM_FEATURE_OPERATIONS_ENABLED=false
## or
CHM_DISABLED_FEATURES=operations
## CHM_CONFIG_FILE (TOML)
[features.operations]
access = "authenticated"
Configuration
No feature-specific configuration. Global settings apply:
CLICKHOUSE_MAX_EXECUTION_TIME=60
NEXT_QUERY_CACHE_TTL=3600
Notes & limitations
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-performanceand/part-logshow 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.- Kill mutation — the kill-mutation button on
/mutationsissuesKILL MUTATION. The ClickHouse user must haveALTER TABLEprivilege (or specificallyKILL MUTATION). Without it the action returns an error. - 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).