Skip to main content
Version: Unreleased

Custom Dashboards

Custom Dashboards let you combine pre-built charts from the app's built-in dashboard catalog, or build new charts from scratch using two query builders: ES Builder (ElasticSearch-based) and Prometheus Query Builder. Charts are arranged in a 12-column resizable grid, and you can create, edit, duplicate, and delete dashboards at will.

Getting Started

Accessing Custom Dashboards

  1. Open the Monitor application and navigate to the main Dashboards page.
  2. In the left sidebar, switch to the Custom tab.
  3. You will arrive at the Custom dashboard manager, which displays a table of all your existing custom dashboards.

The Custom tab info message explains: "Build your own dashboards from charts across the app. Hiding one removes it from the sidebar; deleting is permanent."


Creating a Dashboard

From the Custom dashboard manager, click the "New dashboard" button (a blue button with a + icon, top-right of the page).

A modal opens with the following options:

  1. Dashboard name (required, up to 60 characters) — a descriptive name for your dashboard.
  2. Description (optional, up to 280 characters) — a longer explanation of what the dashboard monitors.
  3. Starting point — choose between:
    • Blank dashboard — start empty and add charts yourself.
    • Duplicate a dashboard — pick one of the built-in dashboards (Home, Calls, RTP, etc.) and copy its charts into your new custom dashboard as a starting point.

Create dashboard modal

Click Create (or Create & edit if adding charts upfront). If successful, you are taken to a new empty dashboard view.

Empty dashboard view

note

On a fresh dashboard, you will see a centered empty-state message: "This dashboard is empty. Add charts from Home, Calls, RTP and more to start building your view." with a big "Add your first chart" button.


Adding Charts

Click "Add your first chart" (or the "+ Add chart" button from the dashboard header) to open the Add chart drawer on the right side of the screen.

The drawer has two tabs:

Catalog

The Catalog tab shows a searchable, browsable list of all pre-built charts available across every built-in dashboard in the app.

  • Search bar at the top — type to filter charts by name, description, or source dashboard.
  • Source rail on the left — click to filter charts by the dashboards they belong to (Home, Calls, RTP, Alerts, etc.).
  • Chart list on the right — each entry displays the chart name, a description (if available), and a badge indicating which dashboard it comes from.
    • Charts already added to your dashboard are shown with an "Added" button (green checkmark). Click it to remove the chart.
    • Click "Add" (outlined button) to place the chart onto the grid.

Catalog tab — browse and search pre-built charts

info

Charts from the catalog preserve their original configuration and data source. You cannot edit a catalog chart's query — to do that, build a new chart using ES Builder or Prometheus instead.


Building New Charts

Switch to the "Build new" tab inside the drawer. Here you can construct a chart from scratch using one of two query builders.

ES Builder (ElasticSearch Query Builder)

The ES Builder lets you build charts from ElasticSearch-indexed data streams. Configure your chart step by step:

Step 1 — Data Stream

Choose the data source this chart will query from:

Data streamDescription
CallsCall, registration & SIP signaling data
RTPRTP packet, loss & jitter data
ExceededEvents that exceeded configured conditions
AlarmsAlarm records with severity
CollectdHost, network & service metrics
SyslogSystem & application log messages
Step 2 — Metric

Select an aggregation type and the metric field to aggregate:

  • Aggregations: count, sum, avg, min, max, cardinality
  • Field: Choose the specific field from the selected data stream.
Step 3 — Compare (Optional)

Toggle "Compare" to enable a secondary metric, allowing you to display a comparison between two different aggregations side by side.

warning

Compare cannot be used together with Group by. If Group by is enabled, the Compare option will be locked.

Step 4 — Group by (Optional)

Group the results by a selected field. You can also configure:

  • Size — number of top groups to show
  • Order — ascending or descending
  • OrderBy — which metric to sort by
warning

Group by cannot be used together with Compare.

Step 5 — Filters

Add filters to narrow down the data. Supported filter operators:

OperatorDescription
isExact match
is_notNot equal to
existsField has a value
not_existsField is empty or missing
gtGreater than
ltLess than
betweenBetween two values
containsValue contains the specified text
Step 6 — Visualization Type

Choose how the data is rendered. The app suggests compatible visualization types based on your data configuration:

VisualizationDescription
ValueA single numeric value
LineTime-series line chart
Time barsBar chart showing time-distributed data
BarCategorical bar chart
DonutDonut/pie chart
TableTabular data with multiple rows/columns
HeatmapIntensity-based grid visualization

Heatmap visualizations always span the full 12-column width of the grid.

Step 7 — Name

Enter a title for the chart (max. 60 characters). This title is displayed on the chart card within the dashboard.

Live Preview

As you configure the chart, a live preview pane updates in real-time, showing you a sample of the data visualized with your current settings. You can collapse and expand this preview at any time.

ES Builder — configure a chart from ElasticSearch data

Click "Add to dashboard" to place the new chart on the grid, or click "Reset" to start fresh with a new configuration.


Prometheus Query Builder

note

The Prometheus Query Builder is available only if Prometheus is configured in your environment. If not configured, a notice will appear explaining how to set it up.

The Prometheus builder lets you create charts from Prometheus time-series metrics:

Step 1 — Metric

Select the Prometheus metric name from the available metrics.

Step 2 — Function

Choose a Prometheus aggregation function:

FunctionDescription
InstantRaw instantaneous value from Prometheus
avg_over_timeAverage value over a specified time range
ratePer-second average rate of increase (for counter metrics)
increaseTotal increase over a specified time range
Step 3 — Label Matchers

Filter metrics by label key-value pairs. Supported operators:

OperatorDescription
eqEqual to (exact match)
neqNot equal to
reRegex match
nreNot regex match

Example: job="moki", instance=~"sbc-.*".

Prometheus Step 4 — Group by (Optional)

Group the results by a specific label to produce multiple time series.

Prometheus Step 5 — Topk (Optional)

Limit the number of resulting time series to the top k values.

Prometheus Step 6 — Visualization Type

Choose from:

VisualizationDescription
ValueSingle numeric value
LineTime-series line chart
BarCategorical bar chart
TableTabular data

Unlike ES Builder, Prometheus builder supports fewer visualization types (no donut, heatmap, or timebar).

Prometheus Step 7 — Name

Enter a title for the chart (max. 60 characters).

Prometheus Live Preview

Just like ES Builder, a live preview pane shows a sample of the data as you configure the query.


Managing Your Dashboard

Editing and Arranging Charts

Once your dashboard has one or more charts, you can manage them on the grid:

  • Drag to reposition — click and drag any chart card to move it to a different grid slot.
  • Resize — grab the edges or corners of a chart card to resize it within the 12-column grid.
  • Edit — click the Edit icon (pencil) on a chart card to reopen the builder/drawer pre-filled with the chart's existing configuration.
  • Duplicate — click the Duplicate icon (copy) on a chart card to create a copy with the same configuration in a new grid slot.
  • Remove — click the Remove (delete) icon on a chart card to delete it from the dashboard.

Dashboard grid with multiple arranged charts


Edit Mode

Click the Edit toggle button in the dashboard header to enter Edit Mode.

When Edit Mode is active:

  • Chart cards display outline borders to indicate they can be rearranged.
  • You can freely drag and resize charts without immediately persisting changes.
  • Changes are buffered until you save (e.g., navigate away, or the dashboard is auto-synced).
  • When you exit Edit Mode (or the changes are persisted), the buffered layout is applied.
info

Edit Mode gives you a scratchpad experience for dashboard layout. Your changes are only written to the server once you finalize them, so you can experiment freely without breaking the current layout.


Saving and Persistence

  • Custom dashboards are stored server-side in the user profile.
  • Changes auto-sync to your profile via the updateUserProfile API call.
  • If a save operation fails (e.g., network error), the dashboard creation is rolled back and an error notification is shown.

Limits and Constraints

warning

Custom dashboards have the following limits:

  • Maximum 10 custom dashboards per user. If you try to create a dashboard when you already have 10, a warning notification appears and the creation is blocked.
  • Maximum 20 charts per dashboard. If you try to add a chart when you already have 20, a warning notification appears and the addition is blocked.
  • Maximum 60 characters for chart titles. The input field enforces this limit.

The dashboard grid is a 12-column layout. When chart cards wrap beyond the 12th column, they flow to the next row automatically.


Dashboard Manager

From the Custom tab in the sidebar, the Dashboard Manager gives you full CRUD (Create, Read, Update, Delete) control over your custom dashboards.

Searching

Use the search bar at the top of the manager page to filter dashboards by name or description.

Dashboard Table

The table shows all your custom dashboards sorted by last modified (most recent first):

ColumnDescription
DashboardThe dashboard name. Click it to navigate to the dashboard. Shows the optional description below the name.
VisibilityToggle whether the dashboard appears in the sidebar. Hidden dashboards are not deleted — they are simply removed from sidebar navigation.
ActionsClick the three-dot (⋮) menu for additional options: Edit opens the dashboard in Edit Mode directly; Delete permanently removes the dashboard.

Dashboard Manager — table showing all custom dashboards with search, visibility, and actions

Deleting a Dashboard

  1. Click the three-dot menu (⋮) on the dashboard row.
  2. Select Delete.
  3. A confirmation modal appears with the message: "Delete {name}? This permanently removes the dashboard and its charts. This can't be undone."
  4. Click Delete to confirm, or Cancel to abort.
danger

Deleting a dashboard is permanent and irreversible. Make sure you no longer need the dashboard before confirming deletion.

Hiding a Dashboard

Click the visibility toggle on a dashboard row to hide it from the sidebar. Hidden dashboards remain server-side and can be made visible again at any time. Hiding is not the same as deleting — the dashboard and its charts are fully preserved.

Click on a dashboard name in the table to navigate directly to that dashboard. Click Edit in the Actions column to open a dashboard and immediately enter Edit Mode.