> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monocle.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Dashboards

> Build personalized dashboards to visualize any OpenTelemetry metric

Custom Dashboards let you create your own monitoring views by combining widgets that visualize any metric collected by your application. Pick the metrics that matter to you, choose how to display them, and arrange everything on a drag-and-drop grid.

## Widget types

Six visualization types are available:

| Type          | Best for                                | Default size |
| ------------- | --------------------------------------- | ------------ |
| **Chart**     | Time-series trends (line, area, or bar) | 6×5          |
| **Stat**      | Single important number at a glance     | 3×3          |
| **Sparkline** | Latest value with a mini trend chart    | 3×3          |
| **Table**     | Tabular breakdown of metric data        | 6×5          |
| **Pie**       | Proportional breakdown by attribute     | 4×4          |
| **Bar gauge** | Ranked comparison across groups         | 4×5          |

<Note>
  **Pie** and **Bar gauge** widgets require a `groupBy` attribute to split the data.
</Note>

## Configuring widgets

Each widget is backed by an OpenTelemetry metric. You pick:

* **Metric name** — any metric collected by your application (use the metric explorer to discover them)
* **Aggregation** — avg, sum, count, min, max, rate, or percentiles (p50, p90, p95, p99)
* **Group by** — split the data by any attribute (e.g. `service.name`, `host.name`)
* **Filters** — narrow down by attribute values

### Display options

* **Chart type** — line, area, or bar (for chart widgets)
* **Stacking** — stack grouped series on top of each other
* **Format** — number, duration, percentage, or bytes
* **Unit** — custom label for axes and tooltips (e.g. "ms", "req/s", "MB")
* **Color** — pick from a preset palette or use the default auto-coloring

## Grid layout

Dashboards use a **12-column grid**. In edit mode, you can drag widgets to reposition them and resize them from the bottom-right corner. The layout is saved per dashboard.

A few tips for clean layouts:

* Widgets on the same row should have the **same height** to avoid gaps
* Plan each row as a unit — decide the row height first, then size all widgets to match
* Stat and sparkline widgets work well as a row of 4 (3 columns each)
* Chart and table widgets pair nicely as two per row (6 columns each)

## MCP Server

Custom dashboards are fully manageable through the [Monocle MCP Server](/features/mcp). Your AI assistant can create dashboards, add widgets, and update layouts programmatically.

| Tool               | Description                                                |
| ------------------ | ---------------------------------------------------------- |
| `list_dashboards`  | List all custom dashboards                                 |
| `get_dashboard`    | Get a dashboard with all its widgets                       |
| `create_dashboard` | Create a new empty dashboard                               |
| `update_dashboard` | Update name, description, or icon                          |
| `delete_dashboard` | Delete a dashboard and all its widgets                     |
| `add_widget`       | Add a widget with metric, visualization, and layout config |
| `update_widget`    | Update an existing widget                                  |
| `remove_widget`    | Remove a widget                                            |

Example: *"Create a dashboard called API Health with charts for request latency, error rate, and throughput"*
