Use dashboards to visualize metrics, logs, and events from your feature pipelines in a single view. A dashboard is a grid of widgets: timeseries charts, tables, and single-number statistics over your data; status widgets for monitors, incidents, deployments, and connection health; and text notes and section titles that 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 to create an empty dashboard named “Untitled dashboard”. Click the title to rename it, and click below the title to add a description.

​
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 seven kinds of widgets:

  • Data widget: a chart, table, or statistic over your metrics, logs, access logs, or Kube events
  • Monitor widget: the current status of an existing monitor, including any active incident
  • Latest deployment: a summary of the environment’s most recent deployment
  • Incident widget: a list of recent incidents, limited to ongoing or resolved incidents if you choose
  • Connection health: the health summaries from the Connections page for the connections you choose
  • Text: a free-form markdown block
  • Section title: a full-width heading with a divider line

Choose Data widget to open the widget editor:

​
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, Tree map, Pie chart, or Statistic). Options that do not 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.

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.

Optionally name the widget (if you leave the name 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.


​
Visualizations

A data widget renders as one of five visualizations. Timeseries and Statistic work with every data source; Table, Tree map, and Pie chart are for Logs, Access Logs, and Kube Events.

​
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:

​
Table

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

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

​
Tree map and pie chart

These views show how a count divides among groups. Group by one or more dimensions, and each group becomes a rectangle in the tree map or a slice of the pie. They use the Count measure only, because other measures do not add up to a whole. The pie chart can also hide its legend or its labels.

This pie chart groups access-log requests by scaling group and sizes each wedge by request count:

​
Statistic

A single number summarizing the whole time range. 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:

​
Putting it all together

​
Text and section titles

Two widget types carry no data:

  • Text widgets render GitHub-flavored markdown, including 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:

​
Working with widgets

Every widget has a menu with Edit, Duplicate, and Delete. Duplicate creates a copy of the widget, including its configuration and size, in the first free slot. To build a row of similar charts, configure one widget, 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. Their settings live in the URL, so copying a link shares exactly what you are looking at.

​
Time range and live data

The time selector takes a rolling window, a calendar window, or a range you type. Rolling presets run from Past minute to Past 365 days. Calendar presets are Month to date, Year to date, Current month, and Current year, aligned to UTC midnight. To set any other window, type it into the time range field, for example last 7 days or jun 1 to jun 5.

With a rolling window, Live mode (on by default) keeps the dashboard updating; turning it off reveals a manual refresh button. Expand doubles the window, Condense halves it, and Reset returns to the default. Zooming into any chart narrows the whole dashboard to that range.

​
Annotations

The annotations menu overlays operational context on every chart at once: incident markers, incident ranges, deployments, Kubernetes resource patches, and custom annotations you have drawn on charts. For example, a deployment marker that lines up with a latency spike shows what changed at that moment.

​
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:

  • Duplicate creates <name> (Copy) with the same widgets and layout, and opens it.
  • Export as JSON and Copy JSON download the dashboard as a .dashboard.json file or copy the JSON to the clipboard.
  • Import, on the Dashboards page, accepts pasted JSON or an uploaded 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

Alerts come from monitors. To get notified when a metric crosses a threshold, create a monitor, which has its own metric configuration and trigger independent of any dashboard. Monitors are configured under Alerting > Monitors, and alert routing is covered in Alert Configuration.