# Web Dashboard (/operate/web-dashboard)



The web dashboard is the primary visual surface for a running KubeMQ broker. It's a
single-page application served on port **8080** that shows cluster health, per-channel
throughput, connected clients, protocol connectors, AI agents, the audit trail, and live
configuration.

## Overview [#overview]

The dashboard is an embedded SPA served by the [management API](/operate/observability/api-reference).
Every number it renders comes from the same metrics collectors that feed the Prometheus
exporter and the JSON management endpoints — the dashboard is one view over that data, not
a separate source of truth.

<Callout type="info">
  The dashboard is **read-only for messaging data**. Producing and consuming happen through
  the client SDKs, the REST/gRPC API, or a drop-in connector — never from the UI. The only
  write paths in the dashboard are control-plane operations: editing or reverting
  configuration, and managing accounts.
</Callout>

## Access [#access]

| Property  | Value                |
| --------- | -------------------- |
| URL       | `http://<host>:8080` |
| Served by | Management API       |
| Bundle    | Embedded SPA         |

The dashboard is open by default, with no login required. When control-plane
authentication is enabled, it requires a session login, and features are gated by the
caller's role (viewer / editor / admin). See
[Security](/configure/reference/security) for the account model and roles.

## The shell [#the-shell]

Common controls appear on every page:

* **Left navigation** — switches between the sections listed below.
* **Time range** — selects the window used by all rate charts on the page.
* **Refresh interval** — auto-refresh rate for live values.
* **Theme** — light / dark toggle.
* **Language** — UI localization.

## Navigation map [#navigation-map]

<Mermaid
  chart="graph LR
    classDef broker fill:#EFF6FF,stroke:#2563EB,stroke-width:2px,color:#0F172A;
    classDef events fill:#EDE9FE,stroke:#7C3AED,color:#0F172A;
    classDef store fill:#E0E7FF,stroke:#4F46E5,color:#0F172A;
    classDef queue fill:#CCFBF1,stroke:#0D9488,color:#0F172A;
    classDef command fill:#FFEDD5,stroke:#EA580C,color:#0F172A;
    classDef connector fill:#DCFCE7,stroke:#16A34A,color:#0F172A;
    classDef aiway fill:#F3E8FF,stroke:#9333EA,color:#0F172A;
    classDef data fill:#F5F5F4,stroke:#57534E,color:#0F172A;

    OVERVIEW[&#x22;Overview&#x22;]

    subgraph CHANNELS[&#x22;Channels&#x22;]
        EVENTS[&#x22;Events&#x22;]
        ESTORE[&#x22;Events Store&#x22;]
        QUEUES[&#x22;Queues&#x22;]
        RPC[&#x22;Commands / Queries&#x22;]
    end

    CLIENTS[&#x22;Clients&#x22;]

    subgraph CONNECTORS[&#x22;Connectors&#x22;]
        AWS[&#x22;AWS SQS/SNS&#x22;]
        GCP[&#x22;Google Pub/Sub&#x22;]
        MQTT[&#x22;MQTT&#x22;]
        AMQP[&#x22;AMQP 0-9-1&#x22;]
        AMQP10[&#x22;AMQP 1.0&#x22;]
        STOMP[&#x22;STOMP&#x22;]
        CE[&#x22;CloudEvents&#x22;]
    end

    subgraph AGENTS[&#x22;Agents&#x22;]
        A2A[&#x22;A2A&#x22;]
        MCP[&#x22;MCP&#x22;]
    end

    ACCOUNTS[&#x22;Accounts&#x22;]
    AUDIT[&#x22;Audit&#x22;]
    CONFIG[&#x22;Config&#x22;]
    SYSTEM[&#x22;System&#x22;]

    class EVENTS events;
    class ESTORE store;
    class QUEUES queue;
    class RPC command;
    class AWS,GCP,MQTT,AMQP,AMQP10,STOMP,CE connector;
    class A2A,MCP aiway;
    class CONFIG,SYSTEM data;"
/>

## Sections [#sections]

### Overview [#overview-1]

The landing page. Aggregate cluster health, total send/receive rates across all patterns,
and a connector band summarizing every active protocol connector at a glance. Use it as
the daily starting point before drilling into a specific channel or connector.

### Channels [#channels]

One page per messaging family — [Events](/learn/events),
[Events Store](/learn/events-store), [Queues](/learn/queues), and
[Commands / Queries](/learn/rpc) (RPC). Each page lists the channels of that family
with their current rates and, where applicable, depth. Clicking a channel opens a detail
view with throughput and backlog history over the selected time range, plus the clients
attached to it.

Key per-channel values:

* **Send / receive rate** — current-activity message rate (msg/s).
* **Waiting** (Queues) — messages ready and waiting for a consumer.
* **Delayed** (Queues) — messages scheduled for future delivery.
* **Clients** — connected producers/consumers on the channel.

### Clients [#clients]

Every client connected to the broker: identity, channels in use, and activity. Use it to
confirm expected consumers are attached and to spot clients that connected or dropped.

### Connectors [#connectors]

One page per drop-in protocol connector — [AWS SQS/SNS](/connectors/aws),
[Google Pub/Sub](/connectors/gcp-pub-sub), [MQTT](/connectors/mqtt),
[AMQP 0-9-1](/connectors/rabbitmq), [AMQP 1.0](/connectors/amqp),
[STOMP](/connectors/stomp), and [CloudEvents](/connectors/cloudevents). Each shares the same shape: connection/link
counts, per-operation throughput, error rates, and history charts specific to that
protocol's operations. These pages are how you confirm a drop-in connector is receiving
client traffic and mapping it onto KubeMQ channels.

### Agents [#agents]

**A2A** and **MCP** pages showing registered AI agents, their liveness, and request
throughput/latency. See [Aiway](/aiway).

### Accounts [#accounts]

Present when control-plane authentication is enabled. Manage user and service accounts,
assign roles, and issue/revoke API keys. Gated to the admin role. See
[Security](/configure/reference/security).

### Audit [#audit]

The audit trail — control, data, and system events — with filtering. The who-did-what
record for management and messaging activity. See [Audit Logging](/operate/observability/audit).

### Config [#config]

A live view of the effective server configuration, with the ability to change and revert
it. A control-plane write path, gated by role. See
[Security](/configure/reference/security) for who can write, and
[Observability settings](/configure/reference/observability) for the fields shown.

### System [#system]

Node and cluster status: per-node health, cluster membership, and liveness. In a
multi-node deployment, most metric pages present cluster-wide aggregates while System
exposes the per-node breakdown.

## How to read the numbers [#how-to-read-the-numbers]

* **Rates** are current-activity deltas in messages/second — short spikes under bursty
  producers are normal; a sustained slope is the signal that warrants action.
* **Depths** (waiting, delayed, backlog) are point-in-time counts, not rates.
* A rising **Waiting** count while the receive rate stays flat means consumers are not
  keeping up. A non-zero **Delayed** count is intentional scheduling, not a stuck queue.

The same values are exported as Prometheus metrics and available on the JSON management
API. See [Prometheus Metrics](/operate/observability/metrics) and the
[Management API](/operate/observability/api-reference).

## Related [#related]

<Cards>
  <Card title="Observability" href="/operate/observability" description="Metrics, tracing, logging, audit, and the management API behind every number in the dashboard." />

  <Card title="Security" href="/configure/reference/security" description="Control-plane authentication, roles, and the account model that gates the dashboard's write paths." />

  <Card title="Observability settings" href="/configure/reference/observability" description="The raw configuration keys shown on the dashboard's Config page." />

  <Card title="kmq CLI" href="/operate/kmq-cli" description="Prefer the terminal? Drive the same management API from the command line." />
</Cards>
