How metric panels work
A panel is the building block of every dashboard. Panels can be visual (charts), tabular (tables), or KPI-style (aggregate values). Every panel is defined by a combination of:- Display type (how the data appears)
- Collection (what records the panel pulls from)
- Filters (which subset of data is included)
- Aggregation operation (how results are calculated)
- Metric key (what you’re measuring)
- Grouping (how results are segmented across categories)
- One or more datasets (for comparisons and multi-series charts)
Think in questions, not chartsA good panel starts with a question—then you pick the collection, filters, and metric that answer it. The chart type is the final step, not the first.
Panel types
Rootly supports the following panel types:- Line chart
- Line stepped chart
- Column chart
- Stacked column chart
- Monitoring chart
- Pie chart
- Table
- Aggregate value
- Line-based charts are best for trend analysis.
- Column charts emphasize volume comparison.
- Stacked columns show composition within totals.
- Pie charts surface proportional distribution.
- Tables support operational review.
- Aggregate values highlight KPIs.
Monitoring chartMonitoring charts are optimized for time-series monitoring-style data visualization, but still use the same panel configuration model (datasets, filters, group-by, and export).
Collections and access
Panels pull data from a collection. Which collections are available depends on your product access (seat type):- Alerts
- Incidents
- Retrospectives
- Action Items
- Users
Collections are seat-basedIf you only have an On-Call seat, you’ll typically see Alerts collections. If you have an Incident Response seat, you’ll see additional collections such as Incidents, Retrospectives, Action Items, and Users.
Add a metric panel
To add a panel:- Go to Metrics and open the dashboard you want to edit
- Click + Add Panel
- Configure the panel (type, collection, filters, operation, key, etc.)
- Click Create
Example: Number of incidents (production-impacting)
Example panel configuration
| Field | Value |
|---|---|
| Title | # of Incidents |
| Description | Count of production incidents across standard incident kinds. |
| Type | Aggregate value |
| Collection | Incidents |
| Filter by | Kind = Normal, Kind = Normal sub, Kind = Backfilled |
| Operation | Count |
| Key | Results |
Edit panels
To edit a panel:- Open the dashboard in Metrics
- Hover over the panel
- Click ⋯
- Select Settings
- Update configuration and click Update
Validation happens on saveRootly validates your configuration before saving. If you select an invalid key, operation, or filter condition, you’ll see a targeted error message so you can correct it immediately.
Move and resize panels
Dashboards use a grid-based layout.- Drag a panel to move it
- Drag the corner handle to resize it
Grid defaultsPanels default to a grid size of 6 columns wide × 3 rows tall, with a minimum height enforced for readability.
Filters
Filtering determines what counts. Without intentional filtering, dashboards become noise generators. With thoughtful filtering, they become precision tools. In Rootly, filtering operates on two layers: global view preferences (personal and temporary) and panel-level filters (persistent and shared). Understanding the difference is critical for designing dashboards that are both flexible and consistent.- Dashboard-level filters (your personal view preferences)
- Panel-level filters (saved as part of the panel configuration)
Dashboard-level filters (view preferences)
Dashboard-level filters apply to all panels and are saved per user:- Date range (e.g., Last 30 Days)
- Period (day / week / month / quarter / year)
- Team filters
- Service filters
Your view doesn’t change the dashboardView preferences are personal. Changing your dashboard filters doesn’t edit the dashboard or affect what other viewers see.
Panel-level filters
Panel-level filters are stored with the panel itself and define exactly which records are included in that panel’s dataset.Filter conditions (operators)
Depending on the field type, Rootly supports operators like:=(equals)!=(not equals)>=(greater than or equal)<=(less than or equal)exists/not_existscontains/not_containsassigned/unassigned(incident roles only)
Role-aware filteringIncident roles support
assigned and unassigned, allowing panels like “Incidents missing an Incident Commander” or “SEV0s where Comms Lead is unassigned.”Filter groups (AND / OR logic)
Filters support grouping logic through filter groups.- AND groups require all rules to match
- OR groups match if any rule matches
- (SEV0 OR SEV1) AND (Environment = Production)
- (Service contains Payments) OR (Functionality contains Checkout)
Group By
Group By segments the results inside a panel—turning a single metric into comparative series. Group By is useful when you want to answer questions like:- Which teams generate the most incidents?
- Which services have the longest time-to-resolve?
- How do SEV0 counts differ by environment?
- Creates multiple series for line/column charts
- Segments pie charts by the grouped field
- Can group by custom fields and incident roles
Group By turns “a metric” into “a comparison”If you’re trying to drive action, group-by is often the difference between a dashboard that reports and a dashboard that informs.
Multiple datasets (comparisons)
Chart panels can include multiple datasets. Each dataset can have:- A different collection
- Different filters
- Different operations and keys
- A custom series name
- SEV0 count vs SEV1 count over time
- Time to mitigate vs time to resolve
- Incidents from Team A vs Team B
One panel, multiple narrativesMultiple datasets let you compare signals without building separate panels—keeping the dashboard compact and the analysis aligned.
Cumulative charts
Certain chart types support cumulative mode, which displays running totals over time. Supported chart types:- Line chart
- Line stepped chart
- Column chart
- Stacked column chart
- “Incidents year-to-date”
- “Total alerts this quarter”
- “Action items created this month”
Table panels
Table panels display raw records rather than aggregated metrics. They are useful when you want a dashboard that supports both:- macro analysis (charts and KPIs), and
- direct operational drill-down (lists of incidents, alerts, or action items)
- Selecting visible columns
- Including custom fields and incident roles as columns
- Exporting full datasets
Display vs export limitsTables may display up to 100 rows in the UI for performance, but exports can include the full dataset.
Aggregate value panels
Aggregate panels display a single formatted number—ideal for KPI dashboards. Examples:- Total incidents (count)
- Average time-to-resolve (average)
- Total hours worked until mitigated (sum)
- Exec summaries
- Weekly reliability reviews
- “Top row” dashboard metrics
Operations and keys
Operations
Operations vary depending on the collection:- Count — available for all collections
- Average — commonly available for Alerts and Incidents
- Sum — available for Alerts, Incidents, and Users (and depends on the metric key)
If you don’t see an operation, it’s usually intentionalSome collections only support Count because there isn’t a valid numeric metric to average or sum across records.
Keys (what you’re measuring)
Keys are collection-specific and depend on the operation you select.Incidents (examples)
- Count:
results - Average/Sum:
triage_time,detection_time,acknowledge_time,mitigation_time,resolution_time,cancellation_time,closed_time
Alerts (examples)
- Count:
results - Average:
acknowledge_time,resolution_time,time_between_failure - Sum:
acknowledge_time,resolve_time
Users (examples)
- Count:
results - Sum:
hours_worked_until_triaged,hours_worked_until_mitigated,hours_worked_until_resolved
Time-based behavior
Dashboards apply time filtering automatically based on the selected date range. Depending on the collection, Rootly uses different timestamps to scope records (for example, incidents and alerts use theirstarted_at timestamps). This ensures charts remain consistent when comparing across dashboards and periods.
Time scoping is applied consistently across collections to ensure analytical integrity. This means comparisons between alerts, incidents, and retros remain aligned when viewing the same date range.
If data appears incomplete or unexpectedly low, the first place to check is always your dashboard-level date range.
Time filtering is automaticMost panels inherit the dashboard’s date range and period grouping. If results seem “missing,” check your dashboard-level date range first.
Exporting dashboards and panels
Export a dashboard
- Open the dashboard in Metrics
- Click ⋯
- Select Download PDF
Export a panel
- Hover over the panel
- Click ⋯
- Choose an export format
- PDF (all panel types)
- CSV (all panel types)
- JSON (all panel types)
- PNG / JPG (chart panels only)
Charts only for image exportPNG/JPG exports are only available for chart-based panels. Tables and aggregate value panels export via PDF/CSV/JSON instead.
Duplicate a panel
- Hover the panel
- Click ⋯
- Select Duplicate
- Copy all configuration (filters, keys, operations, display type)
- Are renamed to Copy of
{original title} - Appear in a default grid position (you’ll likely want to reposition it)
Full screen view
Full screen mode is ideal for TVs or wallboards.- Open the dashboard
- Click the full screen icon (top-right)
- Press ESC or click the icon again to exit
- Hides sidebar navigation
- Maximizes panel readability
- Optimizes spacing for large displays
Performance, caching, and limits
Dashboards are optimized for responsiveness, which includes caching and record limits.Caching is a feature, not a bugPanel data is cached (typically ~15 minutes). If you recently changed incident data, it may take 15–20 minutes to appear—especially with auto-refresh enabled.
- Panel queries are limited (often 10,000 records by default, higher with feature flags)
- Panel titles are limited in length (to keep dashboards scannable)
- Table panels cap visible rows for UI performance (exports can include full datasets)
Best practices
Build dashboards with intent
Dashboards should map to a recurring cadence:- Weekly team reliability review
- Monthly executive metrics
- Incident program retrospectives
- On-call operational readiness
Prefer fewer, stronger panels
A dashboard with 6–10 focused panels is typically more useful than one with 25 panels competing for attention. When in doubt:- duplicate the dashboard,
- specialize it,
- keep each one opinionated.
Use Group By as your default “depth tool”
If a metric is actionable, it usually has an owner. Grouping metrics by teams, services, or incident types makes accountability visible without requiring extra dashboards.Frequently Asked Questions
Why don’t I see all collections?
Why don’t I see all collections?
Collections are seat-based. Users with only an On-Call seat typically see Alerts, while users with Incident Response access see additional collections like Incidents, Retrospectives, Action Items, and Users.
Why can’t I export a table panel as PNG?
Why can’t I export a table panel as PNG?
PNG and JPG export formats are available only for chart-based panels. Tables and aggregate values can still be exported as PDF, CSV, or JSON.
Why do my changes take time to show up?
Why do my changes take time to show up?
Panel results are cached for performance. Changes to underlying data may take 15–20 minutes to appear depending on cache refresh and any auto-refresh settings.
Can I filter and group by custom fields?
Can I filter and group by custom fields?
Yes. Panels support filtering and grouping by custom fields. Custom fields can also be used in tables as columns for drill-down workflows.
What’s the difference between dashboard filters and panel filters?
What’s the difference between dashboard filters and panel filters?
Dashboard filters are your personal view preferences (date range, period, team/service filters) and apply across all panels without changing the dashboard for other users. Panel filters are stored inside the panel configuration and define the panel’s dataset for everyone who views it.
Need help designing dashboards that actually get used?If you’re not sure how to structure panels, groupings, or comparisons, contact us at support@rootly.com or use
/rootly support in Slack.