Skip to content

azat/chdig

Repository files navigation

chdig

Dig into ClickHouse with TUI interface.

Installation

There are pre-built packages for the latest available version:

Standalone binaries

Package repositories

archlinux user repository (aur)

And also for archlinux there is an aur package:

Note: chdig-latest-bin is recommended because it is latest available version and you don't need toolchain to compile

scoop (windows)

scoop bucket add extras
scoop install extras/chdig

brew (macos)

brew install chdig

And also see releases.

Demo

asciicast

Motivation

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. At first I came with some slides and a picture (to attract your attention) by analogy to what Brendan Gregg did for Linux:

Know Your ClickHouse

Note, the picture and the presentation had been made in the beginning of 2022, so it may not include some new introspection tools.

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.

chdig can be used not only to debug some problems, but also just as a regular introspection, like top for Linux.

See also FAQ

Features

  • top like interface (or csysdig to be more precise)
  • Flamegraphs (CPU/Real/Memory/Live)
  • Cluster support (--cluster) - aggregate data from all hosts in the cluster
  • Historical support (--history) - includes rotated system.*_log_* tables
  • clickhouse-client compatibility (including --connection) for options and configuration files

And there is a huge bunch of TODOs (right now it is too huge to include it here).

Note, this it is in a pre-alpha stage, so everything can be changed (keyboard shortcuts, views, color schema and of course features)

Requirements

If something does not work, like you have too old version of ClickHouse, consider upgrading.

Later some backward compatibility will be added as well.

Note: the oldest version that had been tested was 21.2 (at some point in time)

Build from sources

Prerequisites:

# will build deb/rpm/archlinux packages
make packages

Third party libraries

Third party services

References

  • clog.py - Highlight ClickHouse logs

Notes

Since Rust is a new language to me, the code can be far from ideal.

About

Dig into ClickHouse with TUI interface.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 7