/ClusterSense

Intuitive Web Dashboard for Apache-Kafka Broker Metrics

Primary LanguageTypeScriptMIT LicenseMIT

ClusterSense - Kafka Cluster Management Tool


Table of Contents


Product Description

Cluster Sense is an open-source product dedicated to developing a Kafka cluster visualization tool. Our tool is designed with developers in mind, to help our users visualize their metrics and have an understanding of their clusters' health.

Features

Real-time Metrics and Charts: ClusterSense provides a GUI with important metrics, updated in real-time for insights into your Kafka clusters' health and performance through visually appealing charts.

Seamless Prometheus Integration: Setting up Prometheus to scrape Kafka metrics has never been easier. View our sample YML file to guide you through the prometheus configuration, ensuring that the process is a smooth experience.

Profile Port Selection: The application's top navbar has a dropdown that stores your previous port selections for easy navigation between seperate Kafka Instances for seamless monitoring of multiple brokers or clusters.

Tech Stack

TypeScript JavaScript React Node Express Prometheus PostgreSQL Apache Kafka Tailwind Jest Testing Library Vite Docker MUI Chart.js AWS


Web App

To begin using ClusterSense, navigate to ClusterSense.org and create an account.

  • Ensure prometheus is running and connected with your broker/cluster
  • Enter the port prometheus is currently occupying into the form and hit submit; we have included a sample prometheus.yml file in the sampleconfig directory to streamline your prometheus configuration.
  • View real-time data of your Apache-Kafka instance

Install Locally

Alternatively, if you would prefer to run ClusterSense locally, you may fork and clone our Github repository.

  • Create a .env file in the main directory and create a variable PG_URL set equal to your PostgreSQL server instance URI
  • Instantiate the database using the CLI with these table formats:
    • CREATE TABLE "users" ( user_id serial PRIMARY KEY, username varchar(50) NOT NULL, password varchar(255), oauth_provider varchar(255), oauth_id varchar(255), oauth_access_token varchar(255), oauth_refresh_token varchar(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
    • CREATE TABLE cluster( id SERIAL PRIMARY KEY, user_id SERIAL REFERENCES users(user_id), cluster_port INTEGER NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)
  • In the terminal run:
    • npm install
    • npm run dev
  • Once the application is running, navigate to localhost:3030, create an account, and input the port of your Prometheus server.

Contribute

If you would like to contribute to this product and improve upon it's current functionality or add a feature, please fork the repository and submit a pull request. Some of our planned features for ClusterSense include:

  • Open Authorization
  • Light/Dark Mode
  • Adding User-Defined Charts to GUI
  • Alerting with user-defined service level indicators

Contributors


Allen Hui


Sam Johnson


Wanlu Ding


Daniel (Jung Tae) Lee


License

This project is licensed under the MIT License