Skip to content

Widgets

A dashboard holds up to 100 widgets. Each has a type and a type-specific config. This page lists every type and every option. Option names are the keys in the dashboard JSON.

Five widgets chart query results: Time series, Query value, Top list, Table and Pie. They share one query model, covered in queries, formulas and variables. The monitoring, logs, traces and RUM widgets read purpose-built data and take filters instead of queries. Note and Section hold text and layout.

FieldDescription
id1 to 32 characters from A-Z, a-z, 0-9, _ and -. Unique in the dashboard.
typeOne of the types below.
titleUp to 200 characters. Empty means an automatic title suggested from the query.
descriptionUp to 2,000 characters. Shown as a tooltip on the title.
layout{x, y, w, h} on a 12-column grid. w is 1 to 12, x + w is at most 12, h is 1 to 48 rows of 64 px.
timeOptional range that overrides the dashboard range for this widget. A time badge shows when it is set.
configThe type’s options, below.

Each widget draws its own state, so one failure never blanks the board.

  • Loading. A skeleton shows until data arrives.
  • Error. The widget shows a message and a Retry button. A query that takes longer than 15 seconds shows as a timeout.
  • No data. An empty result is labeled No data. It is never drawn as zero.
  • Denied. A widget you cannot use, because of your plan or a missing RUM application, says so.
  • Partial data. The last bucket, which is still filling, is shaded.
  • Approximate. A marker shows when a result is approximate.
  • Warnings. A widget that hides part of its data says so, for example “Showing the top 10 of 37 series”.

Each widget has a menu that appears on hover and focus:

ActionWhat it does
View full screenOpens the widget alone. The URL carries w=<widget id>.
EditOpens the widget editor.
DuplicateAdds a copy of the widget.
CopyCopies the widget as JSON. Paste it into any dashboard.
Open in explorerOpens the matching explorer with the widget’s filters and time range.
Export CSVDownloads the widget’s data.
RemoveDeletes the widget from the draft.

Edit, Duplicate and Remove change the dashboard, so they are for people who can edit it.

Time series, Query value, Top list, Table, Pie, Log stream, Trace list and Web Vitals use the dashboard range (or their own time override).

A few widgets differ:

  • Uptime bars use their own days setting.
  • Certificate and domain expiry, Monitor status and Monitor grid show current state. On the grid, the range only feeds the uptime and response-time figure on each tile.
  • Incidents with state: open shows what is open now. With state: all it uses the range.

All five chart widgets take queries (up to 10) and formulas (up to 5). Values in Query value, Top list, Table and Pie reduce over the whole window with the measure’s aggregation, never the last bucket.

A line, area or bar chart on a real time axis. Gaps in the data stay gaps. The axis and tooltip use the series unit.

OptionValuesDescription
displayline, area, barsMark type.
stackedboolStack the series.
series_limitdefault 10, max 50How many groups to draw. The rest are counted in a warning.
legendauto, table, compact, noneLegend style. Click an entry to isolate it.
legend_columnsany of value, avg, min, max, sumColumns in the table legend.
y_axis{min, max, scale, include_zero}scale is linear or log.
unitsee unitsOverrides the measure’s unit.
decimalsnumberDecimal places.
thresholds[{value, tone, style, label}]Horizontal markers. tone is ok, warn or danger. style is line or band. label is optional.
compareprevious_period, 1d, 1w or unsetDraws the same series from earlier as dashed lines, shifted onto the current window.
overlaysany of incidents, downtimeMarks incidents or downtime on the chart. See below.
palettecategorical, cool, warm, statusSeries colors.

The crosshair is shared across the dashboard, so hovering one chart marks the same moment on all of them. Turn it off with the crosshair setting in Settings. Drag across a chart to zoom the dashboard’s time range in.

Overlays. incidents marks incidents that overlap the window. If the widget filters on service or status_page, only matching incidents show. downtime marks failed windows of the monitors the widget’s monitor filters select, up to 200 events.

One large number per visible query or formula.

OptionValuesDescription
unit, decimalsAs above.
compareprevious_period or unsetAdds a change chip against the previous window.
higher_isbetter, worse, neutralDecides whether an increase is colored as good or bad.
sparklineboolDraws a small trend under the number.
thresholds[{op, value, tone}]op is gt, gte, lt or lte. The first match colors the value.

Groups ranked by a value. Add a group_by to the query to say what is ranked.

OptionValuesDescription
sort_byquery or formula idDefaults to the first visible one.
orderdesc, ascSort order.
limitdefault 10, max 100Rows shown.
unit, decimals, thresholdsAs for Query value.

Groups as rows, and queries and formulas as columns.

OptionValuesDescription
columns[{id, label, display, unit, decimals, thresholds}]id is a query or formula id. display is number, bar or sparkline. With no columns, each visible query and formula gets a number column.
sort_by, orderAs for Top list.
limitmax 500Rows shown.

Shows one visible query as shares of a whole.

OptionValuesDescription
limitmax 12Slices shown. The rest are grouped as “Other”.
donutboolDraws a ring instead of a disc.
unitAs above.

A unit is one of ms, seconds, percent, count, bytes, score, per_second or none. Leave unit unset to use the measure’s own unit.

These widgets read monitors and incidents. Their filters use the fields of the monitors or incidents source and accept variables.

One tile per monitor, with a status dot, the name and a figure. Down tiles are tinted.

OptionValuesDescription
filtersmonitors fieldsWhich monitors to show.
group_byunset, monitor_type, tag, statusAdds group headings.
sortstatus, name, uptime, response_timeTile order.
metricuptime, response_time, noneThe figure on each tile.
sizetile, compact, listDensity.
hide_pausedboolLeaves out paused monitors.

Monitor status is one of up, down, degraded, paused or pending.

Counts of monitors by status, with a total.

OptionValuesDescription
filtersmonitors fieldsWhich monitors to count.
show_listboolLists the monitors that are not up.

One row per monitor, one thin bar per day. A tooltip gives the day’s uptime and downtime. Days with no data are left empty. Bars are colored by uptime band.

OptionValuesDescription
filtersmonitors fieldsWhich monitors to show.
days30, 60, 90Window length. Overrides the dashboard range.
limitdefault 10, max 50Monitors shown.
sla_targetpercent, optionalAn SLA target to measure against.

A list of incidents with severity, status, service and times.

OptionValuesDescription
filtersincidents fieldsWhich incidents to show.
stateopen, allOpen incidents now, or every incident in the range.
limitmax 100Rows shown.

Certificate and domain expiry (expiry_list)

Section titled “Certificate and domain expiry (expiry_list)”

The expiry dates of TLS certificates and domain registrations for the monitors you select, each with the days left.

OptionValuesDescription
filtersmonitors fieldsWhich monitors to include.
kindsany of tls, domainWhat to list.
warn_daysdefault 30Days left at which an item is a warning.
critical_daysdefault 7Days left at which an item is critical.
limitnumberRows shown.

Each row’s status is ok, warn, critical, expired or unknown.

These widgets read your telemetry. On shared dashboards, Log stream and Trace list show “Not available on shared dashboards” instead of data. Web Vitals works there.

The newest matching log lines.

OptionValuesDescription
filterslogs fieldsWhich logs to show.
searchtextFree-text search.
columnsany of level, source, host, env, version, trace_idExtra columns.
limitmax 200Lines shown.

Not available on shared dashboards.

Traces with root service, root operation, start, duration, span count and error count.

OptionValuesDescription
filterstraces fieldsWhich traces to show.
sortrecent, duration, errorsOrder.
limitmax 100Rows shown.

Not available on shared dashboards.

A rail of LCP, INP, CLS, FCP and TTFB. Each shows its p75 and how many samples were good, needed improvement or were poor.

OptionValuesDescription
filtersRUM fieldsUsually sets app.

Markdown text for headings, runbook links and context.

OptionValuesDescription
markdownup to 10,000 charactersThe content.
alignleft, centerText alignment.
tonenone, info, warnTints the note.
paddingboolPads the content.

A full-width, collapsible row. Widgets below a section belong to it until the next section.

OptionValuesDescription
collapsedboolHides the section’s widgets.
childrenwidgetsFilled only while collapsed. They keep their layout and return when you expand the section.

A section is always 12 columns wide and 1 row tall. Sections cannot contain sections.

  • Grid. 12 columns at 1200 px and wider. Below 768 px widgets stack full width in reading order, and dragging is off.
  • Add. The add-widget tray has search and categories. Click a widget or drag it in.
  • Move and resize. Drag a widget to move it, and drag its corner to resize it.
  • Copy and paste. Cmd+C and Cmd+V on a focused widget copy it between dashboards.
  • Undo and redo. Cmd+Z and Shift+Cmd+Z.
  • Editor. The widget editor is a full-height drawer with a live preview on top. It has a visualization picker, a query builder, formulas and display options per type.