# Dashboards
source: https://docs.chalk.ai/docs/dashboards

## Combine metrics, logs, and events from your feature pipelines into a single custom view.

Dashboards allow you to visualize metrics, logs, and events from your feature pipelines in a
single, highly customizable view. A dashboard is a grid of widgets — timeseries charts,
tables, and single-number statistics over your data, plus text notes and section titles to give the
page structure. Dashboards are shared across your environment: every teammate sees the same
dashboards, and every edit saves automatically.

### Getting started

This walkthrough builds a first dashboard from scratch.

### Create a dashboard

In the left navigation, open Monitoring > Dashboards. The Dashboards page lists every dashboard
in the environment, along with its owner, when it was last updated, and how often it is viewed.
You can search by name, sort the columns, and star the dashboards you use most.

Click New dashboard, and you'll see a new empty dashboard named "Untitled dashboard".
Click the title to rename it, and click below the title to add a description.

A new, empty dashboard with an editable title and a dashed "Add widget" tile

### Add your first widget

Click Add widget in the top right of the screen, or click the dashed placeholder tile on the
empty grid. The menu offers three kinds of widgets:

- Data widget — a chart, table, or statistic over your metrics, logs, access logs, or Kube
events.
- Text — a free-form markdown block.
- Section title — a full-width heading with a divider line.

The Add widget menu, with Data widget, Text, and Section title options

Choose Data widget to open the widget editor:

The data widget editor as it first opens, with data source and visualization pickers above the configuration form

### Choose a data source and visualization

At the top of the editor, pick a Data source — Metrics, Logs, Access Logs, or
Kube Events — and a Visualization — Timeseries, Table, or Statistic. Options
that don't apply to the selected source are disabled; see Visualizations below
for examples of each. The editor shows a live preview of the widget as you configure it.

### Configure the query

The editor below the pickers depends on the data source.

For Metrics, you build one or more series: pick a metric (for example Feature Latency or
Query Count), a window function (mean, sum, a percentile, and so on), optional group-by dimensions,
and optional filters. You can also add formulas that combine series arithmetically.

The data widget editor with the Metrics source: a series with kind, window, group by, and filters, next to a live preview

For Logs, Access Logs, and Kube Events, you can write a search query using the same
search syntax as the explorer pages, then describe what to show with an
aggregation row.

The data widget editor with the Logs source: a search query and an aggregation row above a live preview

Optionally give the widget a name — if you leave it blank, Chalk derives one from the
configuration — then click Add widget. The widget lands in the first free slot on the grid.

### Arrange the layout

Drag a widget by its top to move it, and drag its bottom corners to resize. Every layout change saves automatically.

Different sized widgets

### Visualizations

A data widget renders as one of three visualizations. Timeseries and Statistic work with
every data source; Table is for Logs, Access Logs, and Kube Events. Mixing them
lets a dashboard pair headline numbers with the charts and tables that explain them.

### Timeseries

Values over time, drawn as lines or stacked bars, with one series per group. For example, this
widget overlays the p95, p50, and mean of access log duration, filtered to a related set of HTTP paths,
to profile their latencies:

A timeseries of p95, p50, and mean of access log Duration, filtered to one HTTP path

### Table

An aggregate table shows one row per group with a column per measure. For example, this widget counts access
logs by HTTP path:

An aggregate table counting access logs by HTTP path, with value bars on the sorting measure

With the List view, the table instead shows the matching records themselves — a live tail on
the dashboard. For example, this widget lists recent log lines matching a specific error message:

A list table tailing log lines that match a specific error message

### Statistic

A single big number summarizing the whole time range, useful for headline tiles. A statistic
reduces to one value, so it takes a single measure or series and no grouping. You can add a unit
label (for example queries or ms) and turn on Compare to previous period to show the
change versus the preceding window of equal length. For example, this statistic widget counts Evicted Kube events:

A statistic widget counting Evicted Kube events over the selected time range

### Putting it all together

A dashboard view of kube oomkills and evicts

### Text and section titles

Two widget types carry no data:

- Text widgets render GitHub-flavored markdown — headers, lists, links, code, and tables. Use
them for runbook links, context on what a section means, or instructions for on-call engineers.
The editor shows a live preview, and long content scrolls within the widget.
- Section title widgets render a heading followed by a divider line that spans the row. Leave
the title empty to get a plain divider.

As an example:

A dashboard section with a section divider and markdown text

### Working with widgets

Every widget has a menu with Edit, Duplicate, and Delete. Duplicate creates a copy of
the widget — configuration and size included — in the first free slot, which is the fastest way to
build a row of similar charts: configure one, duplicate it, and edit the copies. Metric widgets
additionally offer Open in metrics explorer to investigate the same configuration outside the
dashboard.

Hovering a chart reveals its toolbar: switch the chart type, zoom into a time range by dragging,
view fullscreen, and annotate. Hovering any chart also highlights the same moment in time across
every chart on the dashboard.

### Dashboard controls

The controls in the top right header apply to every widget on the dashboard at once. They are part of the
URL — not saved with the dashboard — so copying a link shares exactly what you are looking at.

### Time range and live data

The time selector uses a relative window (ex. "Past 3h") or an absolute range. With a relative window, Live mode (on by default) keeps the
dashboard updating; turning it off reveals a manual refresh button. Zooming into any chart narrows
the whole dashboard to that range.

The time selector open, with relative window presets, a custom range picker, and the Live toggle

### Annotations

The annotations menu overlays operational context on every chart at once: incidents, deployments,
Kubernetes resource patches, and custom annotations you've drawn on charts. Annotations make it
easy to answer "what changed here?" — for instance a latency spike that lines up with a deployment marker.

A chart with deployment and incident annotations overlaid on the series

### TV mode

Open TV mode from the dashboard's actions menu to get a chrome-free, read-only rendering of
the dashboard that refreshes every five minutes. Exit with the menu in the corner.

### Duplicating, exporting, and importing

Dashboards serialize to a portable JSON format, which powers several features in the dashboard's
actions menu:

The dashboard actions menu, with Duplicate, Export as JSON, Copy JSON, and Delete options

- Duplicate — creates <name> (Copy) with the same widgets and layout, and takes you to
it.
- Export as JSON / Copy JSON — download the dashboard as a .dashboard.json file, or copy
the JSON to the clipboard.
- Import — from the Dashboards page, click Import and paste JSON or upload a file. Invalid
documents are rejected with specific, per-field errors so you can fix and retry.

Exports are portable across environments — a dashboard exported from one environment can be
imported into another.

### Dashboards and alerting

Dashboard widgets visualize; they do not alert. To get notified when a metric crosses a threshold,
create a monitor, which owns its own metric configuration and trigger
independently of any dashboard. Monitors are configured under Alerting > Monitors, and alert
routing is covered in Alert Configuration.





