go-ch-manager is a powerful, lightweight, and efficient management tool designed to simplify day-to-day operations of ClickHouse databases at scale.
It provides engineers, data teams, and platform owners with deep visibility into query execution, system performance, storage usage, and cluster health—all from a centralized and easy-to-use interface.
Built with performance and operability in mind, go-ch-manager helps teams move from reactive firefighting to proactive optimization by turning raw ClickHouse system data into actionable insights.
Goals
- Simplify ClickHouse administration by providing clear visibility and centralized control
- Quickly identify performance bottlenecks in queries, storage, and resource usage
- Enable faster troubleshooting and optimization with actionable insights and metrics
- Improve Operational Confidence & Stability
- Go 1.25+
- ClickHouse
- Go Fiber
- SQLite
| Name | Role | |
|---|---|---|
| Rahmat Ramadhan Putra | rahmatrdn.dev@gmail.com | Creator |
- Git (See Git Installation)
- Go 1.24+ (See Golang Installation)
- ClickHouse (See ClickHouse Installation)
- Mockery (Optional) (See Mockery Installation)
- Redis (Optional based on your requirement) (See Redis Installation or use in Docker)
- Install Make (See Make Installation).
- Clone this repo
git clone https://github.com/rahmatrdn/go-ch-manager.git- Copy
example.envto.env
cp .env.example .env- Adjust the
.envfile according to the configuration in your local environment, such as the database, or other settings - Start the Application Service
go run cmd/app/main.go- Open
http://localhost:7012in your browser
tips: if you use VS Code as your code editor, you can install extension golang.go and follow tutorial showing code coverage after saving your code to help you create unit test
- Use Mockery to generate mock class(es)
make mock d=DependencyClassName- Run unit test with command below or You can run test per function using Vscode!
make test- Docker Build for APP
docker build -t go-ch-manager-app:1.0.1 -f ./deploy/docker/app/Dockerfile .- Run docker compose for API and Workers
docker-compose -f docker-compose.yaml up -d- Create a new branch with a descriptive name that reflects the changes and switch to the new branch. Use the prefix
feature/for new features orfix/for bug fixes.
git checkout -b <prefix>/branch-name- Make your change(s) and make the test(s)
- Commit and push your change to upstream repository
git commit -m "[Type] a meaningful commit message"
git push origin branch-name- Open Merge Request in Repository (Reviewer Check Contact Info)
- Merge Request will be merged only if review phase is passed.
Contact Creator!