Auto-composed dashboards
Nobody should have to build a dashboard to see whether their service is healthy. InfraSage composes one per service, on the fly, from what the service actually emits, and you can reshape and save it when you know better than the defaults.
What gets composed
Open any service (Dashboards → pick a service, or from an alert). The platform:
- Classifies the service into an archetype (HTTP API, worker, database, proxy …) from its telemetry shape, with a visible confidence.
- Selects widgets from a curated catalog whose queries match the archetype, then drops any
widget whose query returns nothing for this service. A service that emits no
http_errors_totalsimply has no error-rate card, not an empty one. - Ranks what matters now. Widgets tied to currently-anomalous metrics float to the top, and an LLM picker (Haiku, cached per service) orders the rest by usefulness given the service's current state. The picker only ranks: it can never hide data, and if it fails, the deterministic order stands.
The sections
| Section | Cards |
|---|---|
| Overview | Golden signals: request rate, error rate, latency, in-flight requests, business latencies |
| Traffic | Top endpoints by volume |
| Saturation | Anomaly-scored metrics (z-scores) |
| Dependencies | Service map, callers, and callees from trace-inferred topology |
| Alerts | Recent alert history |
| Logs analysis | Error/fatal volume trend · latest error lines with trace ids · top learned log patterns |
| Traces analysis | Per-operation latency (avg/max/calls) · slowest traces with drill-down ids |
The "what's anomalous right now" strip pins live z-scores above the fold, and upstream/downstream chips show the blast radius at a glance.
Making it yours
- + Add panel browses the entire widget catalog grouped by category. Add anything the composer didn't pick (your choice overrides the archetype filter), or re-add something you hid.
- Pin floats a card to the top of its section; hide removes it; either action forks your personal saved layout. Per-widget time-window overrides let a 6h error chart sit among 1h cards.
- Reset layout returns to the archetype default.
Layouts are saved per user per service:
GET /api/v1/dashboards/service/{service_id}?time_window=1h # composed dashboard, one round-trip
GET /api/v1/dashboards/catalog # the full widget catalog
GET/POST /api/v1/dashboard-layouts/service/{service_id} # your saved layout
Group dashboards
Services cluster into groups (trace-correlated), each with a composed group view. Same idea, one level up.
:::tip When you outgrow the composition The dashboard answers "how is this service?" For "let me see exactly this metric / log / trace," use Explore. Every widget's underlying data is one deep-link away. :::