0.0
No commit activity in last 3 years
No release in over 3 years
A simple Kafka management UI.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

 Project Readme

Kafka Command

A simple Kafka management UI designed for use with Rails.

CircleCI

Installation

Add this line to your application's Gemfile

gem 'kafka_command'

Compatibility

Rails

Designed for Rails 5. Should work with Rails 4.

Kafka

Fully compatible with Kafka versions 1.0, 1.1, 2.0, and 2.1. Limited functionality for 0.11.

ruby-kafka

Requires ruby-kafka version > 0.6.3

Screenshots

Cluster View

cluster

Topics View

topic

Usage

Mount KafkaCommand inside your application's config/routes.rb file. Make sure it is configured.

Rails.application.routes.draw do
  mount KafkaCommand::Engine, at: '/kafka'
end

KafkaCommand can manage multiple clusters.

It provides the ability to:

  • List topics
  • Show topic metadata
    • Replication factor
    • Partitions
    • Offsets
  • List consumer groups
  • Show consumer group metadata
    • Offsets
    • Members
    • Lag
  • List brokers
  • Create Topics
  • Alter topics
    • Add partitions (Not supported on Kafka 0.11)
    • Edit basic topic configurations
  • Delete topics

This project is in an early state, and more functionality is planned for future releases.

Configuration

Add kafka_command.yml to your application's config directory. Kafka command can be configured with multiple Rails environments.

development: # Rails environment
  clusters:
    my_cluster: # Cluster name
      description: 'Development Cluster'
      version: 1.0
      seed_brokers:
        - localhost:9092
    my_other_cluster:
      description: 'Development Cluster'
      version: 2.0
      seed_brokers:
        - localhost:9092
production:
  clusters:
    prod:
      version: 1.1
      description: 'Production Cluster'
      seed_brokers: kafka1:9092,kafka2:9093 # Alternate seed brokers configuration
    secondary:
      version: 1.1
      description: 'Secondary Cluster'
      seed_brokers: <%= ENV['SEED_BROKERS'] %>

Cluster configuration options

Below is a list of available options for each cluster.

Required

  • seed_brokers

Optional

  • version
  • description
  • socket_timeout
  • connect_timeout

SSL Authentication

  • ssl_ca_cert - Required if client cert and key are present.
  • ssl_ca_cert_file_path - Alternative to ca cert option.
  • ssl_client_cert - Required if client cert key is present.
  • ssl_client_cert_file_path - Alternative to client cert option.
  • ssl_client_cert_key - Required if client cert is present.
  • ssl_client_cert_key_file_path - Alternative to client cert key option.

SASL Authentication

  • sasl_scram_username
  • sasl_scram_password

Development

Testing

To run the specs, set the SEED_BROKERS environment variable. The specs will only run if connected to a Kafka Broker.

SEED_BROKERS=localhost:9092 bundle exec rspec

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

  • Report bugs
  • Fix bugs and submit pull requests
  • Write, clarify, or fix documentation
  • Suggest or add new features