Dashboards

Grafana-style dashboards with an editor, variables and Grafana JSON import.

What it is#

Grafana-style dashboards built on the metrics Pulsimo collects: a grid of panels that share a time range and variables. Existing Grafana dashboards can be imported.

Where to find it#

Dashboards in the sidebar. Endpoints and sources also link to their dashboards (Connected monitoring).

Panels#

Panel Use it for
Time series Anything over time: lines, areas, bars, points, stacked or percent-stacked, thresholds as lines or bands, legends as a list or a table with min/mean/max
Stat One number with a sparkline, coloured by thresholds (e.g. "Application status")
Gauge, bar gauge A value against a range (CPU, disk, pool usage)
Bar chart, pie/donut Comparisons across routes, status codes, hosts
Table Many series side by side
Text Notes in Markdown

Working with a dashboard#

  • Time: quick ranges up to the retention period, an absolute range, ← → to shift, zoom out, and drag across any time series to zoom in. Auto-refresh pauses while the browser tab is hidden.
  • Variables at the top (e.g. route, instance) filter every panel. They support label_values(...), metrics(...), query_result(...), custom lists, constants, intervals and text boxes, multi-select and "All". Selections are kept in the URL.
  • Changes button: shows deploys, restarts and new routes as dashed vertical lines on every time series (on by default; Change markers). Hover a line to see what changed.
  • Monitors: chips under the title link to the endpoints this dashboard describes.
  • ⋯ menu: TV mode (full screen), JSON model, export JSON, version history, delete.
  • Star a dashboard to pin it to the top of the list.

Editing#

Edit turns on edit mode: drag panels by the title, resize from the corner, add panels and collapsible rows. Save creates a new version (the last 50 are kept and can be restored). If someone else saved after you opened the dashboard, you choose to reload theirs or overwrite.

The panel editor#

  • A live preview on top with the dashboard's time and variables.
  • Queries below (A, B, C…), each in Code (the official PromQL editor with autocomplete for functions, metrics with their descriptions, labels, values and variables) or Builder (pick a metric, add label filters, chain operations such as rate, sum by, topk, histogram_quantile). Both stay in sync.
  • Metrics browser: search metrics and descriptions, click label values to narrow down, see how many series match, then insert the selector or a ready rate()/p95 query.
  • Hints point out common mistakes with a one-click fix: a counter without rate(), histogram buckets without histogram_quantile(), rate() on a gauge.
  • Query inspector: the final queries after variables, timings, data and raw response.
  • Options on the right: visualization, legend, unit, min/max/decimals, colours, thresholds, value mappings, per-series overrides.

Apply (Ctrl+S) puts the panel back; Save keeps the dashboard.

$__rate_interval#

Use rate(x[$__rate_interval]) rather than a fixed window. Pulsimo sizes it from the dashboard step and your sources' real scrape intervals (at least 4 scrapes), so a source pulled every 60 s doesn't show gaps or zeros. $__interval and $__range work as in Grafana.

Importing from Grafana#

Dashboards → Import, then paste the JSON or upload the file (Grafana: Dashboard settings → JSON Model, or Share → Export; community dashboards from grafana.com work too). Before anything is saved you get a report:

  • which panels mapped and to what (graph → time series, singlestat → stat or gauge…);
  • which became placeholders (types Pulsimo can't draw yet keep their place, size and queries, so nothing is lost);
  • which variables were imported or skipped (data-source variables aren't needed);
  • notes, such as queries for non-Prometheus data sources.

Tested with Node Exporter Full (1860), cAdvisor exporter (14282) and PostgreSQL Database (9628). For Node Exporter Full, job is the source type (node) and instance is host:port, so it works without edits.

Ready-made dashboards#

Metrics → Sources → Connect → Create dashboard builds one from what a source exposes (HTTP app, host, PostgreSQL, MySQL, containers) and attaches it to the endpoints linked to that source.

Performance#

Panels query only when scrolled into view, one batched request per panel; the step follows the panel width; lines are downsampled keeping their shape; at most 50 series per time series panel ("50 of N").