Skip to content

Dashboards

A dashboard is a named collection of widgets pinned to a layout, with a shared global time range. Build them for war-rooms during incidents, for the wall TV at standup, or for the CTO’s daily dashboard refresh.

  • One canonical “is everything OK?” view per service.
  • Incident war-rooms — pin every relevant signal in one place.
  • Executive summaries — top-line business KPIs from your metric pipeline.
  • For ad-hoc exploration — use the per-pillar Explorers (Logs, Metrics, Traces).
  • For alerting — alerts live in the incident management layer, not on a chart.
FieldDescription
nameRequired, displayed at the top.
descriptionOptional context.
global_time_rangeObject: {type: "relative", value: "1h"} or {type: "absolute", from: ..., to: ...}. Per-widget overrides allowed.
auto_refresh_secondsOptional polling interval. Common values: 30, 60, 300.
widgets[]Array of DashboardWidgets.
TypeRenders
timeseriesLine / area chart over time. Most common for metrics.
statSingle big number (current value, latest p99, count).
tableTabular grid (group-by results, top-N lists).
log_streamLive-tailing log feed with filters.
monitor_statusStatus grid for a list of monitors.
textMarkdown text — annotations, runbook links, headers.
SourceUse
metricsTime-series metric queries.
logsLog queries (counts, top values, streams).
tracesTrace counts, latency percentiles.
uptimeMonitor status and uptime percentages.
rumWeb vitals, session counts, error rates.
noneFor text widgets that don’t query anything.

Each widget has a layout: {x, y, w, h} on a 12-column grid. Default is {x: 0, y: 0, w: 6, h: 4} — half-width, 4 rows tall. Drag to reorder in the dashboard editor.

  1. The dashboard has a global_time_range.
  2. Each widget can override with time_range_override (e.g. for a “last 7 days” stat on an otherwise “last 1 hour” dashboard).
  3. The user can change the global range at the top of the page; widget overrides ignore it.

Set auto_refresh_seconds to poll every N seconds. Useful for war-room dashboards on a wall TV. Don’t set it on dashboards that drive expensive aggregations — refreshing every 30 seconds across 20 metric widgets is real load on ClickHouse.