Dashboard Get started

Custom Dashboards

Build any visualisation from your telemetry data by writing SQL and choosing a chart type. Dashboards are saved to your tenant's D1 database and shared across your team.

Screenshot needed

Dashboards list page: 3 dashboard cards in a grid. Card 1: 'Production Overview', 5 panels, updated 2h ago. Card 2: 'Payment Service', 3 panels, updated 1d ago. Card 3: 'API Performance', 2 panels. Each card has a Trash icon in top-right corner (visible on hover). '+ New Dashboard' button in top right.

Creating a dashboard

Click + New Dashboard, type a name, and press Enter or click Create. The empty dashboard opens immediately — add your first panel.

Adding panels

Click + Add panel to open the panel editor.

Screenshot needed

Panel editor modal: Title field='P99 Latency by Service', SQL textarea showing a SELECT query with AVG(p99) grouped by service, Chart type buttons showing 'line' selected (cyan), Width buttons showing 'Full' selected. Preview button at bottom. Small preview table showing results: api-gateway 342ms, payment-service 1840ms.

Panel SQL

Any SELECT query against your hot index tables works:

sql
-- Request rate over time
SELECT
  (timestamp / 3600000) * 3600000 AS bucket,
  service,
  COUNT(*) AS requests
FROM recent_spans
WHERE timestamp > 1784623310440
GROUP BY bucket, service
ORDER BY bucket ASC

-- Error rate by service
SELECT
  service,
  COUNT(*) AS total,
  SUM(is_error) AS errors,
  ROUND(SUM(is_error) * 100.0 / COUNT(*), 1) AS error_pct
FROM recent_spans
GROUP BY service
ORDER BY error_pct DESC

-- p99 latency from metrics
SELECT
  service,
  AVG(p99) AS avg_p99,
  MAX(p99) AS max_p99
FROM metrics_samples
WHERE metric_name = 'http.server.request.duration'
  AND timestamp > 1784558510440
GROUP BY service
Click Preview before saving to run the SQL and see the first rows. The chart renders live in the modal.

Chart types

TypeBest for
LineTime-series data — latency, request rate over time
BarComparing values across categories — errors per service
AreaVolume over time — memory usage, throughput
StatSingle large number — current error count, total requests today
TableRaw tabular data — top 10 slowest spans, recent errors

Screenshot needed

Dashboard with 2 panels: top-left full-width line chart 'Request Rate' with 3 service lines (api-gateway=cyan, payment-service=purple, user-service=emerald). Bottom: stat panel on left showing '847' (total errors today) and table panel on right showing 5 rows of slowest spans.

Saving

After adding or editing panels, click Save in the top right. The dashboard is saved to D1 and immediately available to all team members.

Dashboard panels refetch their SQL every 60 seconds automatically. To force a refresh, navigate away and back.