Problem Statement
The current dashboard widgets are rigid and pre-built, offering very limited customization. Attributes are restricted to basic system properties (incidentId, monitorIds, ownerTeamIds, etc.), ignoring crucial contextual data like Labels, Responders, and Custom Fields. Additionally, time-series visualization lacks granular control (days, hours, minutes).
Proposed Solution
Overhaul the dashboard framework by introducing a custom widget builder, expanding the attribute schema, supporting flexible time granularity, and adding advanced visualization chart types.
Detailed Requirements
Expanded Attribute Support:
Expose the following attributes to all widget aggregation engines:
labels (Key-Value pairs)
responders (User/Team IDs)
customFields (User-defined incident/monitor metadata)
Time Granularity Control:
Add a Time Granularity / Bucket Size picker for all time-series widgets and charts.
Options must include: 1 Minute, 5 Minutes, 15 Minutes, 1 Hour, 1 Day, 1 Week, 1 Month.
Automatically aggregate metric values based on selected granularity (Sum, Average, Count, P95, P99).
Advanced Charting Components:
Introduce new chart widget types:
Multi-Series Line/Area Charts (comparing multiple metrics over time).
Bar / Stacked Bar Charts (e.g., Incidents grouped by Severity or Responder).
Pie / Donut Charts (distribution by Labels or Custom Fields).
Heatmaps & Single Value Gauge Widgets.
Custom Widget Builder UI:
Provide a modal/builder to construct widgets:
Step 1: Choose Visualization Type (Line, Bar, Donut, Counter).
Step 2: Select Data Source (Incidents, Monitors, Telemetry).
Step 3: Define Grouping/Aggregation (Group By: Label, Filter By: Custom Field).
Step 4: Configure Time Granularity & Range.
Acceptance Criteria
Custom Fields, Labels, and Responders are available in widget group-by and filter options.
Users can explicitly select Time Granularity (1m, 5m, 1h, 1d, etc.) on time-series widgets.
Dashboard UI includes new widget types: Bar, Stacked Bar, Donut, and Multi-Series Line.
Users can create custom widgets from scratch using a step-by-step builder.
Problem Statement
The current dashboard widgets are rigid and pre-built, offering very limited customization. Attributes are restricted to basic system properties (incidentId, monitorIds, ownerTeamIds, etc.), ignoring crucial contextual data like Labels, Responders, and Custom Fields. Additionally, time-series visualization lacks granular control (days, hours, minutes).
Proposed Solution
Overhaul the dashboard framework by introducing a custom widget builder, expanding the attribute schema, supporting flexible time granularity, and adding advanced visualization chart types.
Detailed Requirements
Expanded Attribute Support:
Expose the following attributes to all widget aggregation engines:
labels (Key-Value pairs)
responders (User/Team IDs)
customFields (User-defined incident/monitor metadata)
Time Granularity Control:
Add a Time Granularity / Bucket Size picker for all time-series widgets and charts.
Options must include: 1 Minute, 5 Minutes, 15 Minutes, 1 Hour, 1 Day, 1 Week, 1 Month.
Automatically aggregate metric values based on selected granularity (Sum, Average, Count, P95, P99).
Advanced Charting Components:
Introduce new chart widget types:
Multi-Series Line/Area Charts (comparing multiple metrics over time).
Bar / Stacked Bar Charts (e.g., Incidents grouped by Severity or Responder).
Pie / Donut Charts (distribution by Labels or Custom Fields).
Heatmaps & Single Value Gauge Widgets.
Custom Widget Builder UI:
Provide a modal/builder to construct widgets:
Step 1: Choose Visualization Type (Line, Bar, Donut, Counter).
Step 2: Select Data Source (Incidents, Monitors, Telemetry).
Step 3: Define Grouping/Aggregation (Group By: Label, Filter By: Custom Field).
Step 4: Configure Time Granularity & Range.
Acceptance Criteria
Custom Fields, Labels, and Responders are available in widget group-by and filter options.
Users can explicitly select Time Granularity (1m, 5m, 1h, 1d, etc.) on time-series widgets.
Dashboard UI includes new widget types: Bar, Stacked Bar, Donut, and Multi-Series Line.
Users can create custom widgets from scratch using a step-by-step builder.