Docs / Contact / dashboards/overview

Dashboards Overview

A Dashboard is a page of live widgets that chart the data your devices publish. There is no query language to learn: a widget binds to a service and a field, and Contact works out the rest from two sources. The service's validation rules say what a field should look like, and a sample of recent messages shows what devices actually send. Either way the builder knows the field's shape before you pick a chart.

A live Contact dashboard with line charts, stat tiles, status, and fleet liveness widgets

Where the builder learns about your data#

Source What it contributes
Validation rules the field's kind, an expected range (between, gt, lt), the allowed values (in, eq)
Recent messages every field your devices published, an inferred kind, sample values, observed min and max
A path you type any other field, charted as long as the data is numeric

Rules make widgets smarter. A between [0, 50] rule renders as a shaded expected band on line charts and frames a gauge's scale; an in ["ok", "warn", "crit"] rule gives status tiles their states and keeps distribution and donut colors stable, with the first declared value green and the last red. A field with no rule still charts; it just has no band or severity colors until you add thresholds of your own.

Every service also offers two service-level widgets regardless of its rules:

Any device can power a device health widget (memory and disk usage over time) fed by its heartbeats, and text and section header widgets need no data at all.

What a widget can be#

Thirteen widget types cover the usual dashboard vocabulary: line and bar charts, stat tiles, gauges, a fleet table with the newest value per device, donut and distribution charts of categorical values, current-status tiles, validation and liveness health, device health, text notes, and section headers.

On top of the type, each widget carries its own display settings: unit, decimals, thresholds that color a value from a given level upward, axis or gauge bounds, line versus area versus bar style, stacking, legend, color, and size (one to six columns wide, three heights).

Composing widgets#

Time and refresh#

Widgets stay stable when services change#

When you add a widget, it snapshots what it learned from the service: the inferred kind, expected range, and allowed values. Editing or deleting the service later never breaks a saved dashboard: the widget keeps rendering with its snapshot and shows a hint that its binding needs attention. Deleting a service is never blocked by dashboards that reference it.

Building with an AI assistant#

The same dashboards can be built by an assistant connected to the Contact MCP server. It has tools to discover what a service's devices publish, create and update dashboards, and run the widget queries directly for ad-hoc questions ("which device is hottest right now?"), plus a contact-dashboards skill that teaches it the conventions above.

Access#

Dashboards are shared account-wide. Who can do what follows IAM roles:

See Building Dashboards for the step-by-step walkthrough.