Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions Web-UI/About.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ The user interface displays:
- errors details
- performance statistics
- trends
- allows for Kafka topics data exploration
- routing and system information
- Kafka topics data explorer
- routing pattern matched topics subscriptions
- status of Web UI integration within your application
- stale partitions detection (LSO hangs)


Karafka Web UI is shipped as a separate [gem](https://rubygems.org/gems/karafka-web) with minimal dependencies.

Expand All @@ -30,4 +32,4 @@ Karafka Web UI is shipped as a separate [gem](https://rubygems.org/gems/karafka-
- [Getting Started](Web-UI-Getting-Started) – For installation and setup instructions
- [Features](Web-UI-Features) – For an overview of Web UI capabilities
- [Pro Web UI](Pro-Web-UI) – For advanced features available in Karafka Pro
- [Monitoring and Logging](Operations-Monitoring-and-Logging) – For monitoring best practices
- [Monitoring and Logging](Operations-Monitoring-and-Logging) – For monitoring setup and logging configuration
16 changes: 8 additions & 8 deletions Web-UI/Components.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
# Web UI Components

Karafka Web UI is an intuitive tool that visually represents the metrics related to the operation status of Karafka processes. It centralizes data, offers insights into the system's health, and ensures that users can understand and analyze the functioning of their Karafka processes in real time.
Karafka Web UI is an intuitive tool that visually displays metrics related to the operational status of Karafka processes. It centralizes data, provides insights into the system's health, and enables users to understand and analyze the functioning of their Karafka processes in real time.

## How Karafka Web UI Works

- **Tracking**: Every Karafka process is responsible for publishing metrics that reflect its operational status. This is done automatically every 5 seconds by default. This periodic data publishing is termed as `tracking`. It captures information granularly, offering insights into individual consumer operations and other related data.
- **Tracking**: Each Karafka process automatically publishes operational metrics every 5 seconds. This periodic data publishing, called `tracking`, provides detailed insights into individual consumer operations and related information.

- **Processing**: Once the tracking data is published, it isn't displayed directly on the Web UI. Instead, a specialized consumer dedicated to Karafka Web UI aggregates this raw data. The purpose is to transform this raw data into meaningful information that can be easily represented and interpreted. Creating representations or models around the tracking data makes it easier to understand and present. For this purpose, Karafka employs a separate consumer group, which gets activated when the Web UI is in use. This stage of converting raw data into structured models for presentation is termed `processing`.
- **Processing**: After tracking data is published, it is not shown directly on the Web UI. Instead, a dedicated consumer for Karafka Web UI aggregates the raw data and transforms it into meaningful information for display. Karafka uses a separate consumer group for this process, which is activated when the Web UI is in use. This conversion of raw data into structured models for presentation is known as `processing`.

- **Presenting**: After processing the data, the final step is to display it via the Web UI. This involves presenting the structured and aggregated data visually appealing and comprehensibly, ensuring you can easily gauge the status and health of your Karafka processes.
- **Presenting**: After processing the data, the final step is to display it via the Web UI. This means presenting structured, aggregated data visually in an appealing, clear way so you can easily gauge the status and health of your Karafka processes.

## Active Consumption vs. Storage Topics

It's important to understand how Karafka Web UI interacts with different topics:
It is important to understand how Karafka Web UI interacts with different topics:

- **Reports Topic (Active Consumption)**: Karafka Web UI actively consumes only the `karafka_consumers_reports` topic. You will see this consumer group subscription in your logs. This is the primary data source for tracking and processing consumer states.

- **Error and Other Topics (Key-Value Storage)**: Topics such as `karafka_errors` and `karafka_consumers_states` serve as key-value stores. While consumer errors and state information are **sent** to these topics by your Karafka processes, the Web UI does **not actively consume** them. Instead, the Web UI reads from these topics on-demand when you access specific pages (e.g., viewing errors in the UI). This is expected behavior and not a misconfiguration.
- **Error and Other Topics (Key-Value Storage)**: Topics such as `karafka_errors` and `karafka_consumers_states` serve as key-value stores. While consumer errors and state information are **sent** to these topics by your Karafka processes, the Web UI does **not actively consume** them. Instead, the Web UI reads from these topics on demand when you access specific pages (e.g., viewing errors in the UI). This is expected behavior and not a misconfiguration.

This design ensures efficient resource usage - only the reports topic requires continuous processing, while other data is accessed as needed.
This design ensures efficient resource usage. Only the reports topic requires continuous processing, while other data is accessed as needed.

Below you can find the diagram of the whole data flow:
The following diagram illustrates how tracking consumers route data through Kafka before it reaches the processing layer and the web server:

<p align="center">
<img src="https://karafka.io/assets/misc/charts/web-ui-flow.svg" alt="karafka web ui data flow"/>
Expand Down
6 changes: 2 additions & 4 deletions Web-UI/Configuration.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
# Web UI Configuration

Similar to configuring Karafka, a few configuration options can also be used in Karafka Web.
Karafka Web offers several configuration options, similar to Karafka. These settings allow you to control topic names, data report frequency, encrypted data visibility, pagination, and other features.

Those options can be used to control things like topics names, frequency of data reports, encrypted data visibility, pagination settings, and more.

You can find the whole list of settings [here](https://github.com/karafka/karafka-web/blob/master/lib/karafka/web/config.rb).
For the comprehensive list of settings, see [here](https://github.com/karafka/karafka-web/blob/master/lib/karafka/web/config.rb).

You can configure Web UI by using the `#setup` method in your `karafka.rb`:

Expand Down
Loading