Dashboard Design
Dashboards give your team a single pane of glass for metrics, logs, incidents, and topology. This guide covers designing and building them in an enterprise-friendly way.
Where to find dashboards
- Dashboards in the left sidebar — List of existing dashboards; New dashboard to create one.
- Open any dashboard to edit (add widgets, resize, set variables and refresh).
![]()
Capture from: Tenant Plane → OBSERVE → Dashboards (list view). Add screenshot as public/img/dashboard-list.png.
Creating a new dashboard
- Click New dashboard (or Create dashboard).
- Enter a name (e.g., “Production API health”) and optional description.
- Save. You’re taken to the canvas (empty grid).
![]()
Capture from: Tenant Plane → Dashboards → New dashboard. Add as public/img/dashboard-empty.png.
Adding widgets
- Click Add widget (or drag from a widget palette).
- Choose widget type, for example:
- Time series — Line/area chart for metrics over time.
- Bar chart — Compare values across categories (e.g., errors by service).
- Gauge — Single value (e.g., current error rate, SLO).
- Table — Logs, incidents, or tabular data.
- Log stream — Live or filtered log lines.
- Topology map — Service/CI dependency map.
- Incident list — Active incidents (optional filters).
- Markdown — Titles, descriptions, links.
- Configure data source:
- For metrics: Select metric name, aggregation (avg, sum, max), and optional filters (service, host, tag).
- For logs: Query (e.g., level:ERROR), time range, limit.
- For incidents: Status, severity, service filters.
- Resize and position the widget on the grid (drag corners or use size controls).
- Save the dashboard.
![]()
Capture from: Tenant Plane → Dashboards → Edit → Add widget. Add as public/img/dashboard-widget-config.png.
Using template variables
Template variables let viewers change scope (e.g., service, environment) without editing the dashboard.
- In dashboard settings or variables, click Add variable.
- Define:
- Name — e.g.,
service,env. - Label — Shown in the UI (e.g., “Service”).
- Type — Dropdown, multi-select, or text.
- Data source — e.g., list of services from API, or static list (prod, staging).
- Name — e.g.,
- In each widget, reference the variable in queries (e.g.,
service = $service, or$envin a metric tag). When the user picks a value, widgets refresh.
Example: Add variable $service (dropdown, values from services API). In a time series widget, set metric filter service = $service. Users can switch services from the dropdown.
![]()
Capture from: Tenant Plane → Dashboards → Edit (with variables). Add as public/img/dashboard-variables.png.
Auto-refresh and time range
- Time range — Set the default (e.g., Last 1 hour, Last 24 hours). Users can often override per view.
- Auto-refresh — Set interval (e.g., 30s, 1m, 5m) so the dashboard updates without manual reload. Use sparingly on heavy dashboards.
Example: Production API health dashboard
- Create dashboard “Production API health.”
- Row 1: Time series — Request rate (metric
request_count, sum by service). Add variable$service; filter by$serviceif not “All.” - Row 2: Time series — Error rate (metric
error_rateorerrors/total, avg). Same$servicefilter. - Row 3: Gauge — Current P99 latency (metric
latency_p99, last value). Table — Top 5 errors (log query level:ERROR, group by message, limit 5). - Row 4: Incident list — Active incidents for service =
$service(or all). - Set time range Last 1 hour, auto-refresh 1 minute. Save.
![]()
Capture from: Tenant Plane → Dashboards → example with sample data. Add as public/img/dashboard-example-api-health.png.
Best practices
- One purpose per dashboard — e.g., “API health,” “Database tier,” “Incident summary.” Avoid huge catch-all dashboards.
- Put critical metrics top-left — Most important SLO or error rate first.
- Use variables for teams that need to switch service/env/region without cloning dashboards.
- Name widgets clearly — e.g., “Orders API — request rate” so the intent is obvious.
- Link to runbooks/playbooks — Add a Markdown widget with links to relevant runbooks or status pages.
Sharing and access
- Share — Invite users or teams (if your product supports it); or share a read-only link.
- Export — Some products support export to PDF or JSON (dashboard-as-code) for version control.
- Default view — Set a dashboard as the default home for a role or team so they land there after login.
Next steps
- Monitoring Policies — Define what metrics you collect.
- Dashboards (module reference) — Technical overview.
- Command Center — Ops home and KPIs.