Glossary · D

Dashboard

A visual collection of charts and tables built from telemetry queries that shows the state of a service or system at a glance.

By Obseria Editorial TeamUpdated

Definition

A dashboard is a visual collection of panels, such as time-series charts, heatmaps, tables and single values, each driven by a query over telemetry data. In observability, dashboards summarize the health of services and infrastructure at a glance and serve as the starting point for drilling down into traces, logs and profiles.

What a dashboard is

A dashboard arranges several panels on one screen so that people can see the current and recent state of a system without writing queries. Each panel is a saved query, for example the request rate of a service, its p99 latency or the memory usage of its pods, rendered as a chart, heatmap, table or single number. Template variables such as environment, cluster or service let one dashboard serve many targets.

Dashboards are the most visible part of monitoring, but they answer only the questions someone thought of in advance. That is the core difference between monitoring and observability: a good dashboard tells you that something is wrong and roughly where; the ability to slice data freely and jump into traces and logs tells you why.

Types of dashboards

TypeAudienceTypical content
Service overviewOwning team, on-callRate, errors, duration, saturation, SLO status, recent deployments
InfrastructurePlatform teamNodes, pods, CPU, memory, disk, network, autoscaling events
Dependency / databaseService owners, DBAsQuery latency, connections, locks, replication lag
Business / executiveProduct, leadershipOrders, sign-ups, revenue-relevant conversion, SLO compliance
Incident / investigationRespondersAd-hoc panels created during an incident, often discarded afterwards

What belongs on a service dashboard

Proven frameworks give structure. The RED method (rate, errors, duration) fits request-driven services; the USE method (utilization, saturation, errors) fits resources such as CPUs, disks or queues; and the four golden signals combine both views. A useful layout puts user-facing signals at the top, then dependencies, then resources:

  1. SLO status and error budget remaining.
  2. Request rate, error rate and latency percentiles (p50, p95, p99) or a latency heatmap.
  3. Calls to downstream dependencies with their latency and errors.
  4. Saturation: CPU throttling, memory, connection pools, queue depth.
  5. Deployment and configuration-change markers on every time-series chart.

Design principles

  • Start from a question. "Is checkout healthy right now?" leads to a better dashboard than "show all checkout metrics".
  • Prefer percentiles and heatmaps over averages. An average latency can look fine while the slowest 1% of users wait seconds.
  • Keep units and axes consistent. Show rates per second, durations in the same unit, and start error charts at zero.
  • Make panels clickable. Link from a latency spike to example traces, ideally via exemplars, and from errors to the matching logs.
  • Treat dashboards as code. Store definitions in version control (for example JSON, Jsonnet or Terraform), review changes and generate standard dashboards per service from templates.

Choosing the right visualization

  • Time series for rates, error ratios and resource usage over time; the default for almost everything that changes.
  • Heatmaps for latency distributions. They reveal bimodal behavior, for example cache hits versus misses, that a single percentile line hides.
  • Single values with thresholds for SLO compliance or remaining error budget, where one number answers the question.
  • Tables for top-N lists such as the slowest endpoints or the noisiest pods, sorted by impact.
  • Service maps for dependencies, so responders can see which upstream or downstream service is affected.

Avoid pie charts for operational data and stacked charts for values that are not meant to be summed, such as percentiles.

Example: a RED panel query

An illustrative PromQL query for a p99 latency panel by route, based on an OpenTelemetry HTTP server histogram exported to Prometheus:

histogram_quantile(0.99,
  sum by (le, http_route) (
    rate(http_server_request_duration_seconds_bucket{service_name="checkout"}[5m])
  )
)

Note that quantiles are computed after summing buckets across instances. Averaging per-instance p99 values is a common and misleading shortcut.

Common mistakes

Dashboard sprawl is the most common problem: hundreds of dashboards, many copied, half of them broken, none clearly owned. During an incident nobody knows which one to trust. Other mistakes are panels with dozens of overlapping lines, queries that group by high-cardinality labels such as user IDs and make dashboards slow, and using dashboards as the primary alerting mechanism, which only works while someone is looking.

Regularly delete dashboards that have not been viewed in months, assign an owner to every remaining one and keep a small set of curated, linked entry points per team.

How Obseria helps

Obseria creates service dashboards automatically from OpenTelemetry data and the topology in Obseria TopoGraph, and every panel can be edited with OQL, PromQL or SQL. Dashboards are included in all plans without per-seat limits and can be managed as code through the API and CLI. From any chart you can drill into traces, logs and profiles; the service catalog links each dashboard to its owning team.

Frequently asked questions

As few as needed to answer its main question. Many teams aim for one screen without scrolling for the top section, with details further down or on linked dashboards. If people regularly ignore a panel, remove it.

Alerts should be defined as separate rules, ideally on SLO burn rates, not on someone watching a dashboard. Dashboards are for context and diagnosis; alerts are for notifying people when action is needed.

Defining dashboards in files that live in version control, such as JSON, Jsonnet or Terraform, instead of building them only by hand in the UI. It enables review, reuse through templates, consistent naming and easy recovery.

Typical causes are long time ranges at high resolution, queries over high-cardinality labels and many panels that each scan raw data. Use recording rules or pre-aggregations, restrict label grouping and limit default time ranges.

Put these concepts into practice

Try Obseria free for 14 days, with OpenTelemetry and no proprietary agents.