Skip to content

Commit 0993b8e

Browse files
Copilotdevinslick
andcommitted
Add Load Time Analysis Period filter and Avg Total Load Time column
Co-authored-by: devinslick <[email protected]>
1 parent f21e0d1 commit 0993b8e

File tree

2 files changed

+38
-6
lines changed

2 files changed

+38
-6
lines changed

default/data/ui/views/CACA_ADMIN_README.md

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,18 @@ Filter dashboards by multiple criteria simultaneously:
2828
- **Dashboard Name**: Wildcard search (e.g., "sales*" or "*report*")
2929
- **App**: Select one or more apps
3030
- **Owner**: Select one or more owners
31+
- **Sharing Level**: Global, App, or Private
3132
- **Health Status**: Healthy, Warning, Critical, or Stale
3233
- **Performance**: Fast (<1s), Good (1-3s), Slow (3-5s), or Very Slow (>5s)
33-
- **Time Range**: Configurable metrics window (default: 7 days)
34+
- **Load Time Analysis Period**: Select time range (24h, 7d, 30d, 90d) for analyzing average total dashboard load time
35+
- **Metrics Time Range**: Configurable metrics window for views, edits, and errors (default: 7 days)
3436

3537
**Use Cases:**
3638
- Find all stale dashboards in the "search" app
3739
- Identify all dashboards owned by a departing team member
3840
- List all dashboards with critical health issues
3941
- Find slow-performing dashboards with high usage
42+
- Analyze load time trends over different time periods
4043

4144
### 2. Dashboard Management Table
4245

@@ -45,13 +48,17 @@ The main table displays all dashboards matching your filters with:
4548
- **Dashboard Name** (clickable to open)
4649
- **App** - Which app contains the dashboard
4750
- **Owner** - Current owner
51+
- **Sharing** - Sharing level (🌐 Global, 📦 App, 🔒 Private)
4852
- **Views (7d)** - Number of views in the selected time range
4953
- **Edits (7d)** - Number of edits
5054
- **Errors (7d)** - Error count
51-
- **Avg Load (ms)** - Average load time
55+
- **Avg Load (ms)** - Average load time (from last 7 days)
56+
- **Avg Total Load Time (ms)** - Average total load time for the selected Load Time Analysis Period
5257
- **Performance** - Visual performance rating (⚡ Fast, ✓ Good, ⚠ Slow, ✗ Very Slow)
5358
- **Health** - Visual health status (✓ Healthy, ⚠ Warning, ✗ Critical, ☾ Stale)
5459

60+
**Note:** The "Avg Total Load Time (ms)" column dynamically updates based on the "Load Time Analysis Period" dropdown selection (24h, 7d, 30d, or 90d), allowing you to analyze performance trends over different time ranges.
61+
5562
**Interactions:**
5663
- Click any dashboard name to open it directly
5764
- Click any other cell to view detailed analytics
@@ -136,13 +143,19 @@ Automated analysis that identifies dashboards requiring attention:
136143
3. Check "Views (7d)" to prioritize high-traffic dashboards
137144
4. Click dashboard name to open and investigate/optimize
138145

139-
### Example 4: Find All Broken Dashboards in Production App
146+
### Example 4: Analyze Load Time Trends
147+
1. Select **Load Time Analysis Period** to "Last 24 Hours" for recent performance
148+
2. Review the **Avg Total Load Time (ms)** column to see current performance
149+
3. Change period to "Last 30 Days" to compare with longer-term trends
150+
4. Identify dashboards with increasing load times for proactive optimization
151+
152+
### Example 5: Find All Broken Dashboards in Production App
140153
1. Set **App** filter to your production app name
141154
2. Set **Health Status** filter to "✗ Critical"
142155
3. Review error counts and view the recommendations
143156
4. Click each dashboard to view error details and fix
144157

145-
### Example 5: Audit Dashboard Permissions
158+
### Example 6: Audit Dashboard Permissions
146159
1. Set **App** filter to specific app(s)
147160
2. Review the owner column
148161
3. Click each dashboard name to check permissions

default/data/ui/views/caca_admin.xml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@
8282
<delimiter> OR </delimiter>
8383
</input>
8484

85+
<input type="dropdown" token="load_time_period">
86+
<label>Load Time Analysis Period (affects Avg Total Load Time column)</label>
87+
<choice value="-24h">Last 24 Hours</choice>
88+
<choice value="-7d">Last 7 Days</choice>
89+
<choice value="-30d">Last 30 Days</choice>
90+
<choice value="-90d">Last 90 Days</choice>
91+
<default>-7d</default>
92+
<initialValue>-7d</initialValue>
93+
</input>
94+
8595
<input type="time" token="time_range">
8696
<label>Metrics Time Range</label>
8797
<default>
@@ -254,10 +264,16 @@
254264
sharing=="app", "📦 App",
255265
sharing=="user", "🔒 Private",
256266
1=1, coalesce(sharing, "-"))
267+
| join type=left pretty_name
268+
[| mstats avg(_value) as avg_total_load_time WHERE index=caca_metrics AND metric_name="dashboard.load_time" BY pretty_name span=1h
269+
| where _time &gt;= relative_time(now(), "$load_time_period$")
270+
| stats avg(avg_total_load_time) as avg_total_load_time by pretty_name
271+
| eval avg_total_load_time=round(avg_total_load_time, 0)]
272+
| fillnull value=0 avg_total_load_time
257273
| eval dashboard_link=dashboard_uri
258274
| eval title_from_uri=mvindex(split(dashboard_uri, "/"), -1)
259-
| table pretty_name app owner sharing_display views_7d edits_7d errors_7d avg_load_time_7d perf_rating health_badge dashboard_link title_from_uri
260-
| rename pretty_name as "Dashboard Name", app as "App", owner as "Owner", sharing_display as "Sharing", views_7d as "Views (7d)", edits_7d as "Edits (7d)", errors_7d as "Errors (7d)", avg_load_time_7d as "Avg Load (ms)", perf_rating as "Performance", health_badge as "Health", dashboard_link as "Dashboard URI", title_from_uri as "Title"
275+
| table pretty_name app owner sharing_display views_7d edits_7d errors_7d avg_load_time_7d avg_total_load_time perf_rating health_badge dashboard_link title_from_uri
276+
| rename pretty_name as "Dashboard Name", app as "App", owner as "Owner", sharing_display as "Sharing", views_7d as "Views (7d)", edits_7d as "Edits (7d)", errors_7d as "Errors (7d)", avg_load_time_7d as "Avg Load (ms)", avg_total_load_time as "Avg Total Load Time (ms)", perf_rating as "Performance", health_badge as "Health", dashboard_link as "Dashboard URI", title_from_uri as "Title"
261277
| sort - "Views (7d)"</query>
262278
<earliest>$time_range.earliest$</earliest>
263279
<latest>$time_range.latest$</latest>
@@ -288,6 +304,9 @@
288304
<format type="number" field="Avg Load (ms)">
289305
<option name="precision">0</option>
290306
</format>
307+
<format type="number" field="Avg Total Load Time (ms)">
308+
<option name="precision">0</option>
309+
</format>
291310
<drilldown>
292311
<condition field="Dashboard Name">
293312
<link target="_blank">$row.Dashboard URI$</link>

0 commit comments

Comments
 (0)