Skip to content

Commit 39cb907

Browse files
committed
update danube UI dashboard pictures
1 parent 802204a commit 39cb907

17 files changed

Lines changed: 70 additions & 43 deletions

README.md

Lines changed: 70 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,97 @@
11
# Danube Admin UI
22

3-
This repository contains the source code for the Danube Admin UI, a modern web interface for managing and monitoring a Danube messaging cluster.
3+
The **Danube Admin UI** is a modern, responsive web dashboard designed for cluster operators and developers. It provides full visibility into cluster state, namespace topology, topic metrics, schema registry configurations, and security policies.
44

5-
The UI is built with React, TypeScript, and MUI, and it communicates with the `danube-admin-gateway` backend service.
5+
## How It Works
66

7-
## Danube Admin UI Screenshots
7+
The Admin UI is a single-page web application (built with React and Material UI) that runs entirely in your browser.
88

9-
**Cluster Listing**:
9+
It communicates over REST/HTTP with the **Danube Admin Server**, a lightweight Rust backend (referred to as the BFF, or Backend-for-Frontend) that acts as a gateway between the UI and your cluster. The Admin Server translates HTTP requests into gRPC calls directed at the active cluster leader broker, and also queries Prometheus for real-time throughput metrics.
1010

11-
Overview of the cluster, shows all the brokers from the cluster.
11+
## Guided Tour
1212

13-
Actions:
14-
* Unload broker, moves all topics to another available broker
15-
* Activate a drained broker, in order to resume accepting new topics
16-
* Click a broker row to open its details.
13+
Here is a walkthrough of the main pages in the Danube Admin UI.
1714

18-
![Cluster Listing](public/cluster_web.png)
15+
### Cluster Dashboard
16+
The landing page is your operational command center. It is organized into three main areas:
1917

18+
**Cluster Info Panels**: Three summary cards at the top give you an instant snapshot of the cluster:
19+
* **Load Manager Info**: Active broker count and total topic count across the cluster.
20+
* **Traffic & Connectivity**: Aggregate RPC totals and the number of active client connections.
21+
* **Raft Consensus Health**: The current election term and last applied log index, confirming that the consensus layer is healthy and converging.
2022

21-
**Broker Details**:
23+
**Cluster Nodes**: Each broker is displayed as a card showing its Raft role, status, and live stats. Operational actions like Activate, Unload, Promote, and Remove are available directly from each card.
2224

23-
Overview of the broker and the topics table associated with the broker.
25+
![Cluster Dashboard — Info panels and node cards](public/danube_cluster_top.png)
2426

25-
Actions:
26-
* Create topic, creates a topic in the cluster
27-
* Move topic to another available broker, cluster leader selects the target broker
28-
* Delete topic, removes the topic from the cluster
29-
* Click a topic row to open its details.
27+
**Load Balancing & Traffic Distribution**: Shows the cluster's balance health score, per-broker load distribution, and lets you trigger a cluster rebalance with an optional dry-run preview.
3028

31-
![Broker Topics](public/broker_web.png)
29+
![Cluster Dashboard — Load balancing and traffic distribution](public/danube_cluster_bottom.png)
3230

31+
### Broker Details
32+
Clicking on a broker card takes you to the broker detail page. Here you can see the full list of topics currently assigned to that broker, along with per-topic stats such as subscription counts and producer/consumer activity.
3333

34-
**Topics**:
34+
![Broker detail page](public/broker_details.png)
3535

36-
Overview of the topics in the cluster. The NonReliable and Reliable topic is a dispatch / persistence mode, see the [Danube dispatch strategy](https://danube-docs.dev-state.com/architecture/dispatch_strategy/) for more details.
36+
### Topics
37+
The Topics page lists all topics across the cluster with key metadata at a glance: delivery type, active producer, subscriptions and consumers.
3738

38-
Actions:
39-
* Create topic, creates a topic in the cluster
40-
* Move topic to another available broker, cluster leader selects the target broker
41-
* Delete topic, removes the topic from the cluster
42-
* Click a topic row to open its details.
39+
![Topics dashboard](public/topics_dashboard.png)
4340

44-
![Topics](public/topics_web.png)
41+
Clicking on a topic opens its detail page, where you can inspect traffic metrics, active producers and consumers, subscriptions, and the schema associated with the topic.
4542

43+
![Topic detail page](public/topic_details.png)
4644

47-
## Running with Docker (Recommended)
45+
### Schema Registry
46+
The Schema Registry page provides a browsable view of all registered schemas. You can inspect individual schema definitions, see which topics reference them, and review schema versions.
4847

49-
Run the UI in a container with minimal steps. Host port matches docker-compose (5173).
48+
![Schema Registry](public/schema_registry.png)
5049

51-
```bash
52-
docker build -t danube-admin-ui .
53-
docker run -d --name danube-admin-ui -p 5173:80 danube-admin-ui
54-
```
50+
### Namespaces
51+
The Namespaces page lists all active namespaces in the cluster. You can create new namespaces or inspect administrative properties, allowing you to segment your messaging resources by environment, team, or application.
5552

56-
Open: http://localhost:5173
53+
### Security & RBAC
54+
Manage access control policies for your messaging resources. You can configure custom roles with fine-grained permissions (e.g., `Produce`, `Consume`, `Lookup`) and bind them to users or service accounts at cluster, namespace, or topic scopes.
5755

58-
Note: The UI expects the gateway at http://localhost:8080 by default.
56+
---
5957

60-
To stop/remove:
58+
## Try It Out with Docker Compose
6159

62-
```bash
63-
docker stop danube-admin-ui && docker rm danube-admin-ui
64-
```
60+
The easiest way to spin up Danube with the Admin Server and Web UI is using Docker Compose. The setup launches **3 Brokers (Raft Consensus)**, a **CLI tool container**, a **Prometheus instance**, the **Admin BFF Server**, and the **Web UI**.
61+
62+
1. **Create a local directory** for the configuration:
63+
```bash
64+
mkdir danube-ui-demo && cd danube-ui-demo
65+
```
66+
67+
2. **Download the required files** from the official GitHub repository:
68+
```bash
69+
# Download Docker Compose setup
70+
wget https://raw.githubusercontent.com/danube-messaging/danube/main/docker/with-ui/docker-compose.yml
71+
72+
# Download Broker configuration
73+
wget https://raw.githubusercontent.com/danube-messaging/danube/main/docker/danube_broker.yml
74+
75+
# Download Prometheus configuration
76+
wget https://raw.githubusercontent.com/danube-messaging/danube/main/docker/prometheus.yml
77+
```
78+
79+
3. **Start the services**:
80+
```bash
81+
docker compose up -d
82+
```
83+
84+
4. **Access the Dashboard**:
85+
Once the containers are running, open your browser:
86+
* **Admin UI**: [http://localhost:8081](http://localhost:8081)
87+
* **Prometheus UI**: [http://localhost:9090](http://localhost:9090)
88+
89+
5. **Stop and Clean Up**:
90+
```bash
91+
docker compose down -v
92+
```
93+
94+
---
6595

6696
## Development
6797

@@ -105,7 +135,7 @@ If you are developing features across the entire stack, run the backend locally
105135
Running the development environment with Docker Compose spins up the complete prepackaged Danube backend stack (3 brokers, admin server, and Prometheus) from official images, while building and running your local `danube-admin-ui` source code inside a Node development container with hot-reloading.
106136

107137
1. **Prepare and run the development environment:**
108-
Navigate to the `docker/` directory, follow the steps in [docker/README.md](file:///home/danr/danube_stream/danube-admin-ui/docker/README.md) to download the config files, and start the services:
138+
Navigate to the `docker/` directory, follow the steps in [docker/README.md](docker/README.md) to download the config files, and start the services:
109139
```bash
110140
cd docker
111141
docker-compose up --build
@@ -118,7 +148,4 @@ Running the development environment with Docker Compose spins up the complete pr
118148
docker-compose down -v
119149
```
120150

121-
The application will be available at **<http://localhost:5173>** and will automatically reload when you make changes to your local files.
122-
123-
124-
151+
The application will be available at **http://localhost:5173** and will automatically reload when you make changes to your local files.

public/broker_details.png

170 KB
Loading
25 Bytes
Binary file not shown.

public/broker_web.png

-85.3 KB
Binary file not shown.

public/cluster_web.png

-66.9 KB
Binary file not shown.

public/danube.png

180 KB
Loading

public/danube_cluster_bottom.png

99.4 KB
Loading
25 Bytes
Binary file not shown.

public/danube_cluster_top.png

127 KB
Loading
25 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)