Dig into ClickHouse with TUI interface.
chdig is also available as part of clickhouse - clickhouse chdig, but
that version may be slightly outdated.
Pre-built packages (.deb, .rpm, archlinux, .tar.gz) and standalone
binaries for Linux and macOS are available for both x86_64 and aarch64
architectures.
The latest unstable release can be found on GitHub.
See also the complete list of releases.
Package repositories (AUR, Scoop, Homebrew)
And also for archlinux there is an aur package:
- chdig-latest-bin - binary artifact of the upstream
- chdig-git - build from sources
- chdig-bin - binary of the latest stable version
Note: chdig-latest-bin is recommended because it is latest available version and you don't need toolchain to compile
scoop bucket add extras
scoop install extras/chdig
brew install chdig
The idea is came from everyday digging into various ClickHouse issues.
ClickHouse has a approximately universe of introspection tools, and it is easy to forget some of them (see the Know Your ClickHouse presentation and the picture below). But this requires you to dig into lots of places, and even though during this process you will learn a lot, it does not solves the problem of forgetfulness. So I came up with this simple TUI interface that tries to make this process simpler.
Know Your ClickHouse
Here is a picture by analogy to what Brendan Gregg did for Linux:
Note, the picture and the presentation had been made in the beginning of 2022, so it may not include some new introspection tools.
chdig can be used not only to debug some problems, but also just as a regular
introspection, like top for Linux.
toplike interface (orcsysdigto be more precise)- Flamegraphs (CPU/Real/Memory/Live) in TUI (thanks to flamelens), auto-refreshed while the query is running (with changes since the previous refresh highlighted;
Ppauses,Dtoggles the diff coloring) - Perfetto support
- Share flamegraphs (using pastila.nl and speedscope)
- Share logs (via pastila.nl)
- Share query pipelines (using viz.js and pastila.nl)
- Split panes (tmux-like) - multiple views side by side, with zoom
- Views configuration - startup pane layout and per-view filter/interval/limit (like
tmuxinator) - Cluster support (
--cluster) - aggregate data from all hosts in the cluster - Historical support (
--history) - includes rotatedsystem.*_log_*tables clickhouse-clientcompatibility (including--connection) for options and configuration files
See the features tour with screenshots, and there is a huge bunch of ideas.
Note, this it is in a pre-alpha stage, so everything can be changed (keyboard shortcuts, views, color schema and of course features)
If something does not work, like you have too old version of ClickHouse, consider upgrading.
Note: the oldest version that had been tested was 21.2 (at some point in time)
cargo build
For development, debugging and build troubleshooting, see Documentation/Developers.md.

