/kafkaVision

A visualization and optimization insight tool for Apache Kafka

Primary LanguageTypeScriptMIT LicenseMIT

Screen Shot 2022-03-31 at 12 14 56 PM

KafkaVision

A visualization and optimization insight tool for Apache Kafka

PRs Welcome

License: MIT

About KafkaVision

KafkaVision simplifies monitoring of a Kafka cluster by allowing developers to:

  • Quickly view a snapshot of a cluster's health
  • Visualize and compare topic level metrics in a cluster

How KafkaVision saves developers time:

  • Prioritizes cluster health metrics and status updates that really matter
  • Provides relevant and useful graphs that update in real-time -- with no additional configuration required
  • Organizes topics and partitions in an easy-to-consume visualization to inform quick consumer optimization decisions
  • Eliminates the need for manual creation of PromQL queries and unfamiliar CLI commands

Pre-requisites

To use this application, you'll need to have at least one of the following:

  1. A running Kafka instance with at least one broker with a public port
  2. A running Kafka instance configured with Prometheus and access to the corresponding Prometheus port

Features

KafkaVision enables you to view your cluster information in the following ways using an interactive GUI:

1) View Cluster Health Metrics (with Prometheus Connection)

Users can view the overall health of their cluster at a glance on the 'Health Metrics' page which includes auto-updating graphs displaying real-time data readings for CPU Usage, JVM Memory Used, and Time spent in GC. It also includes static metrics at the bottom of the page for counts of key cluster elements:

health-metrics

2) View Data Throughput at Topic-Level for TOP 5 High-Use Topics (with Prometheus Connection)

The 'Topic Metrics' page displays real-time throughput metrics for the most active Cluster topics. Click on each topic section to expand and view graphs displaying throughput information at the topic level and click again to collapse.

topic-metrics

3) Insights into cluster topics, partitions, and consumer offsets (with Broker connection)

The 'Partition Diagrams' page allows users to gain insight into the partitions within each Topic of their Cluster, including the number of partitions and the current offsets, allowing developers to quickly make optimization decisions about partition and consumer assignments.

partition-diagram

Instructions

  1. Clone this repo on your local machine
  2. Install dependencies with npm install
  3. Compile Typescript with npm run compile-prod
  4. In a new terminal, run the command npm run build-prod
  5. Then, run npm start
  6. Open localhost:3333 to enter the KafkaVision App
  7. To add a new broker or Prometheus address, add the location in the input field and click Submit.

Demo Testing App

If you do not have a Kafka instance but would like to demo KafkaVision, we modified this public demo app from Confluent Platform to scrape metrics from the cluster and export them to Prometheus using JMX-Exporter. To quickly get up and running, you can open our pre-configured demo cluster with GitPod and follow the boot instructions.

Feature Roadmap

The development team intends to continue improving KafkaVision and adding more features. Head to our roadmap to see our upcoming planned features.

Built With

Contributors

Isabelle Salvador - LinkedIn
Kayliegh Hill - LinkedIn
Neel Lakshman - LinkedIn
Rob Beier - LinkedIn

If you'd like to support the active development of KafkaVision:

  • Star this repo!
  • Tweet about the project
  • Write a review or tutorial on Medium, Dev.to or personal blog
  • Contribute to this project by raising a new issue or making a PR to solve an issue

License

This project is licensed under the MIT License - see the LICENSE file for details