Observability
Combine metrics, logs, and events from your feature pipelines into a single custom view.
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.
This walkthrough builds a first dashboard from scratch.
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.
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:
Choose Data widget to open the widget editor:
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.
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.
Drag a widget by its top to move it, and drag its bottom corners to resize. Every layout change saves automatically.
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.
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:
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:
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:
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:
Two widget types carry no data:
As an example:
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.
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.
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.
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.
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.
Dashboards serialize to a portable JSON format, which powers several features in the dashboard’s actions menu:
<name> (Copy) with the same widgets and layout, and opens it..dashboard.json file or copy
the JSON to the clipboard.Exports are portable across environments: a dashboard exported from one environment can be imported into another.
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.