Code Monkey home page Code Monkey logo

franz's Introduction

Logo

FranzView

An open-source Kafka monitoring and management tool built with JavaScript developers in mind!

GitHub stars GitHub issues GitHub last commit

franzview.com

Table of Contents

  1. About the Project
  2. Getting Started
  3. Contributors
  4. Roadmap
  5. Prometheus Server and Demo Cluster
  6. License

About the Project

FranzView is an open-source web application to help small teams with monitoring and management of Apache Kafka clusters. With FranzView you can monitor key metrics related to broker and topic performance and take actions around them. Through the UI you are able to:

  • Monitor key performance metrics in real time by broker or topic and diagnose any issues through different views
  • Create and delete topics within a cluster
  • Reassign partition replicas to support with load balancing, change replication factor for a topic, and solve for underreplication issues

These features are supported by a GraphQL API for improved performance, for abstraction of PromQL queries, and is easily extendable based on the nuances of your cluster.

Built With

Getting Started

Requirements

Before starting setup you'll need to take the following steps:

  • Have node installed. FranzView is tested to work on Node 14+.
  • If you'd like to use our demo cluster, make sure you have Docker Desktop and Docker Compose installed and then check the demo instructions.
  • Set up JMX exporter on your cluster. You can find the configuration files and a copy of the JMX exporter jar file in the configs/jmx_exporter folder in this repo.
    1. If you're starting your Kafka cluster from the CLI you can set up JMX exporter following these commands:
    export KAFKA_OPTS='-javaagent:{PATH_TO_JMX_EXPORTER}/jmx-exporter.jar={PORT}:{PATH_TO_JMX_EXPORTER_KAFKA.yml}/kafka.yml'
    
    1. Launch or restart your broker as you normally would.
  • Have a Prometheus metric server set up with targets setup for each of your brokers. You should use the prometheus.template.yml as a template.

Please check the docker-compose files in this repo as examples or to spin up a demo cluster.

Installation

  1. Clone down this repository:
git clone https://github.com/oslabs-beta/franz
  1. Create a .env file using the template in the .env.template file to set the environment variables.
  2. In the FranzView root directory to install all dependencies:
npm install
  1. Build your version of Franzview:
npm run build

When you're ready to use FranzView

  1. Start the server:
npm start
  1. FranzView defaults to running on port 3000. So simply go to http://localhost:3000, and voila! You can view your metrics and start managing your Kafka cluster!

Contributors

Roadmap

Franzview is in early stages, but we wanted to get it in the hands of developers as soon as possible to be able to start incorporating user feedback immediately. Here are features we're working on bringing to FranzView in the near future:

  • Additional filtering options for topics and to filter data by time
  • The option to auto-deploy a Prometheus server if one isn't passed in
  • Additional authentication support for Kafka Clusters
  • Log exploration to support with troubleshooting
  • Consumer metrics to monitor consumer performance and make improvements
  • Frontend querying tools so you can query data that is important to your team

If you don't see a feature that you're looking for listed above, find any bugs, or have any other suggestions, please feel free to open an issue and our team will work with you to get it implemented!

Also if you create a custom implementation of FranzView we'd love to see how you're using it!

Prometheus Server and Demo Cluster

We have a few different docker-compose files depending on your needs.

  • If you just need a Kafka cluster (this will spin up a cluster with one zookeeper instance and three brokers (localhost:9092, localhost:9093, localhost:9094):
    docker-compose -f docker-compose-kafka-only.yml up -d
    
  • If you just need a Prometheus server:
    1. Create a prometheus.yml file from the template prometheus.template.yml
    2. Save it in the configs/prometheus folder
    3. Run the following command to spin up a Prometheus server running at http://localhost:9090:
    docker-compose -f docker-compose-prom-only.yml up -d
    
  • If you just need want to spin up a Prometheus server + Kafka Cluster.:
    1. We already have a Prometheus config set up, so don't worry about it!
    2. Run the following command to spin up a Prometheus server running at http://localhost:9090 and 3 brokers (localhost:9092, localhost:9093, localhost:9094):
    docker-compose -f docker-compose-kafka-prom.yml up -d
    

License

This product is licensed under the MIT License without restriction.

franz's People

Contributors

jonathanhaviv avatar rbhastie avatar flyingwolf1701 avatar christopherdunleavy avatar rmaiorca avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.