Skip to content

rahmatrdn/go-ch-manager

Repository files navigation

Go ClickHouse Manager

image

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

Tech Stacks

  • Go 1.25+
  • ClickHouse
  • Go Fiber
  • SQLite

Contact

Name Email Role
Rahmat Ramadhan Putra rahmatrdn.dev@gmail.com Creator

Development Guide

Prerequisite

Windows OS (for a better development experience)

Installation

  1. Clone this repo
git clone https://github.com/rahmatrdn/go-ch-manager.git
  1. Copy example.env to .env
cp .env.example .env
  1. Adjust the .env file according to the configuration in your local environment, such as the database, or other settings
  2. Start the Application Service
go run cmd/app/main.go
  1. Open http://localhost:7012 in your browser

Unit test

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

Running In Docker

  • 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

Contributing

  • 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 or fix/ 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.

More Details Information

Contact Creator!

About

An all-in-one tool to manage, monitor, and optimize ClickHouse databases with deep query and performance visibility.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages