All Projects → fede1024 → Kafka View

fede1024 / Kafka View

Licence: mit
Kafka web UI

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Kafka View

Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (-9.66%)
Mutual labels:  kafka
Spark Structured Streaming Examples
Spark Structured Streaming / Kafka / Cassandra / Elastic
Stars: ✭ 168 (-4.55%)
Mutual labels:  kafka
Kafka Streams Dotnet
.NET Stream Processing Library for Apache Kafka 🚀
Stars: ✭ 173 (-1.7%)
Mutual labels:  kafka
Dcos Commons
DC/OS SDK is a collection of tools, libraries, and documentation for easy integration of technologies such as Kafka, Cassandra, HDFS, Spark, and TensorFlow with DC/OS.
Stars: ✭ 162 (-7.95%)
Mutual labels:  kafka
Prometheus Kafka Adapter
Use Kafka as a remote storage database for Prometheus (remote write only)
Stars: ✭ 166 (-5.68%)
Mutual labels:  kafka
Sanderling
APIs and libraries to read information directly from the EVE Online game client.
Stars: ✭ 169 (-3.98%)
Mutual labels:  user-interface
Mag.js
MagJS - Modular Application Glue
Stars: ✭ 157 (-10.8%)
Mutual labels:  user-interface
Fero
light, fast, scalable, streaming microservices made easy
Stars: ✭ 175 (-0.57%)
Mutual labels:  kafka
Kafka Streams In Action
Source code for the Kafka Streams in Action Book
Stars: ✭ 167 (-5.11%)
Mutual labels:  kafka
Jkes
A search framework and multi-tenant search platform based on java, kafka, kafka connect, elasticsearch
Stars: ✭ 173 (-1.7%)
Mutual labels:  kafka
Denite.nvim
Stars: ✭ 2,014 (+1044.32%)
Mutual labels:  user-interface
Mongo Kafka
MongoDB Kafka Connector
Stars: ✭ 166 (-5.68%)
Mutual labels:  kafka
Logi Kafkamanager
一站式Apache Kafka集群指标监控与运维管控平台
Stars: ✭ 3,280 (+1763.64%)
Mutual labels:  kafka
Kop
Kafka-on-Pulsar - A protocol handler that brings native Kafka protocol to Apache Pulsar
Stars: ✭ 159 (-9.66%)
Mutual labels:  kafka
Sdk Java
Java SDK for CloudEvents
Stars: ✭ 173 (-1.7%)
Mutual labels:  kafka
Queue
本人的RabbitMQ和Kafka详细笔记以及示例代码
Stars: ✭ 158 (-10.23%)
Mutual labels:  kafka
Mctrl
C library providing set of additional user interface controls for Windows, intended to be complementary to standard Win32API controls from USER32.DLL and COMCTL32.DLL.
Stars: ✭ 169 (-3.98%)
Mutual labels:  user-interface
Spark Kafka Writer
Write your Spark data to Kafka seamlessly
Stars: ✭ 175 (-0.57%)
Mutual labels:  kafka
Operators
Collection of Kubernetes Operators built with KUDO.
Stars: ✭ 175 (-0.57%)
Mutual labels:  kafka
Mirus
Mirus is a cross data-center data replication tool for Apache Kafka
Stars: ✭ 171 (-2.84%)
Mutual labels:  kafka

kafka-view

Build Status Docker Image Join the chat at https://gitter.im/rust-rdkafka/Lobby

Kafka-view is an experimental web interface for Kafka written in Rust. Kafka-view creates and maintains a materialized view of the internal state of Kafka including cluster metadata, traffic metrics, group membership, consumer offsets etc. It uses the rdkafka Kafka client library for Rust, and rocket.

Click here for screenshots.

Kafka-view supports multiple clusters and implements a fast search functionality to quickly find a topic or consumer group by name or by regex, across all clusters.

Current features

  • Available data:
    • Broker and topic metrics: byte rate and message rate for each broker and topic in every cluster.
    • Topic metadata: leader, replicas, ISR, topic health.
    • Group membership: show active consumer groups and members, easily find all the consumers for a given cluster or topic.
    • Consumer offsets: show the current consumer offsets, the high watermark and the difference between the two.
    • Consume topic content directly from the web UI.
  • Search:
    • Omnisearch: search for broker, topics and consumers in a single query.
    • Search topics in all clusters by name or regex.
    • Search consumers in all clusters by name or regex.
    • Sort by any field (traffic, consumer lag, etc)

At the moment kafka-view is designed to be read-only. Functionality such as adding topics, changing consumer offsets etc. are not supported.

Configuring and running kafka-view

Configuration

First, create a new configuration starting from the example configuration file. The new configuration should contain the list of clusters you want to monitor, and a special topic in one of the clusters that kafka-view will use for caching.

The caching topic should be configured to use compaction. Example setup:

# Create topic
kafka-topics.sh --zookeeper <zk> --create --topic <cache_topic_name> --partitions 3 --replication-factor 2
# Enable compaction
kafka-topics.sh --zookeeper <zk> --alter --topic <cache_topic_name> --config cleanup.policy=compact
# Compact every 10MB per partition
kafka-topics.sh --zookeeper <zk> --alter --topic <cache_topic_name> --config segment.bytes=10485760

Building and running

To compile and run:

rustup override set $(cat rust-toolchain)
cargo run --release -- --conf config.yaml

To build Docker image and run(Assuming you have config.yaml in current working directory and set port to 8080 in it):

docker build -t kafka-view .
docker run --rm -p 8080:8080 -v `pwd`/config.yaml:/root/config.yaml kafka-view --conf config.yaml

Or you can use prebuilt image from Docker hub:

docker pull fede1024/kafka-view
docker run --rm -p 8080:8080 -v `pwd`/config.yaml:/root/config.yaml fede1024/kafka-view --conf config.yaml

Metrics

Kafka exports metrics via JMX, which can be accessed via HTTP through jolokia. The suggested way to run jolokia on your server is using the JVM agent. Example:

KAFKA_OPTS="-javaagent:jolokia-jvm-1.3.7-agent.jar=port=8778" ./bin/kafka-server-start.sh config/server.properties

To verify that it's correctly running:

curl http://localhost:8778/jolokia/read/java.lang:type=Memory/HeapMemoryUsage/used

Once your cluster is running with Jolokia, just add the jolokia port to the kafka-view configuration and it will start reading metrics from the cluster.

Implementation

Information sources

  • Metadata: cluster metadata is periodically polled using a background thread pool. Cluster metadata conatins: topic information (leader, replicas, ISR), broker information (broker id, hostname, etc), group membership (group state, members etc).
  • Metrics: metrics such as byte rate and message rate per topic are polled in the background using a thread pool. Metrics are read using Jolokia, that mush be active on the Kafka brokers.
  • Consumer offsets: Kafka-view consumes the __consumer_offsets topic and constantly receives the last offset commit for every consumer in every cluster.

Data manipulation and storage

Every data is internally stored using a set of in-memory data structures holding a normalized view of the last available value. When a web page is loaded, the normalized data is combined together to generate the required rapresentation of the data.

Event caching

As a new update is received from the background polling threads or the __consumer_offsets topics, a new event is created. Each event will update the internal memory structures, and will also be periodically stored in a compacted topic in Kafka. Kafka compaction will guarantee that the last update for every key will be available on the topic.

When kafka-view restarts, the compacted topic is consumed and the internal memory structures are restored to the previous state. In future version this model will allow kafka-view to run in clustered mode, where multiple kafka-view instances will work together to poll data from Kafka and will share the information using the compacted topic.

Contributors

Thanks to:

Screenshots

Multiple cluster support

clusters

Cluster level information

combined

Consumer group information

consumer

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].