A Kafka ternimal UI client

1 month ago 3

Latest Release Build Status Go Coverage

ktea is a tool designed to simplify and accelerate interactions with Kafka clusters.

If you're a k9s user you'll love ktea!

topics-page.png

record-detail-page.png

record-page.png

brew tap jonas-grgt/ktea brew install ktea

Binaries available at the release page.

Binaries available at the release page.

All tables can be navigated using vi like bindings:

  • up: j
  • down: k
  • page down: d
  • page up: u

All configuration is stored in ~/.config/ktea/config.conf

All cluster configuration can be managed through the TUI even the initial one.

Example configuration file:

plain-fonts: true # when nerd-fonts are not available set to true clusters: - name: local color: '#00FF00' active: false servers: - localhost:9092 sasl: null schema-registry: url: http://localhost:8081 username: "" password: "" ssl-enabled: false kafka-connect-clusters: - name: PRD url: http://localhost:8083 username: admin password: secret

Multiple clusters can be added. Upon startup when no cluster is configured you will be prompted to add one.

  • No Auth
  • SASL (SSL)
    • PLAIN
  • Multi-Cluster Support: Seamlessly connect to multiple Kafka clusters and switch between them with ease.
  • Topic Management: List, create, delete, and modify topics, including partition and offset details.
  • Record Consumption: Consume records in text, JSON, and Avro formats, with powerful search capabilities.
  • Consumer Group Insights: Monitor consumer groups, view their members, and track offsets.
  • Schema Registry Integration: Browse, view, and register schemas effortlessly.
  • Kafka Connect Integration: Browse, view, and Update clusters.
  • Add more authentication methods
  • Add support for more message formats such as protobuf.
  • Add ACL management.
  • File based import/export of topics.
  • Add ability to delete specific schema versions.
  • Add consumption templating support.
  • Many more, just file an issue requesting a feature!

A docker-compose setup is provided to quickly spin up a local Kafka cluster with pre-created topics, consumer groups, commited offsets etc ...

cd docker docker-compose up -d

After the local cluster is up and running, you can generate some data to work with, usinggo run ./cmd/generate.

Use go run -tags dev cmd/ktea/main.go to run ktea from the root of the repository.

Note: running the tui with dev build tag will simulate an artificial slow network by sleeping for 2 seconds when doing network IO. This way the loaders and spinners can be visually asserted.

Because of interfering testcontainers kafka brokers the tests, for now, can't be run in parallel. This will be fixed in the future.

go test -count=1 ./... -p 1
Read Entire Article