|
| 1 | +# CACA Admin Dashboard |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +The **CACA Admin Dashboard** is a comprehensive administrative control panel designed to streamline dashboard management tasks in Splunk. It consolidates filtering, analysis, and administrative actions into a single, unified interface. |
| 6 | + |
| 7 | +## Purpose |
| 8 | + |
| 9 | +Administrative tasks in the Splunk UI can be cumbersome, requiring navigation between multiple views to: |
| 10 | +- Edit dashboards |
| 11 | +- Change ownership |
| 12 | +- Move objects between apps |
| 13 | +- Delete dashboards |
| 14 | +- Change permissions |
| 15 | + |
| 16 | +The CACA Admin Dashboard solves this by providing: |
| 17 | +1. **Multi-dimensional filtering** to quickly find the dashboards you need to manage |
| 18 | +2. **Comprehensive dashboard listing** with health and performance metrics from CACA |
| 19 | +3. **Quick access** to all common administrative functions |
| 20 | +4. **Actionable recommendations** based on dashboard health and usage data |
| 21 | + |
| 22 | +## Key Features |
| 23 | + |
| 24 | +### 1. Advanced Filtering |
| 25 | + |
| 26 | +Filter dashboards by multiple criteria simultaneously: |
| 27 | + |
| 28 | +- **Dashboard Name**: Wildcard search (e.g., "sales*" or "*report*") |
| 29 | +- **App**: Select one or more apps |
| 30 | +- **Owner**: Select one or more owners |
| 31 | +- **Sharing Level**: Global, App, or Private |
| 32 | +- **Health Status**: Healthy, Warning, Critical, or Stale |
| 33 | +- **Performance**: Fast (<1s), Good (1-3s), Slow (3-5s), or Very Slow (>5s) |
| 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) |
| 36 | + |
| 37 | +**Use Cases:** |
| 38 | +- Find all stale dashboards in the "search" app |
| 39 | +- Identify all dashboards owned by a departing team member |
| 40 | +- List all dashboards with critical health issues |
| 41 | +- Find slow-performing dashboards with high usage |
| 42 | +- Analyze load time trends over different time periods |
| 43 | + |
| 44 | +### 2. Dashboard Management Table |
| 45 | + |
| 46 | +The main table displays all dashboards matching your filters with: |
| 47 | + |
| 48 | +- **Dashboard Name** (clickable to open) |
| 49 | +- **App** - Which app contains the dashboard |
| 50 | +- **Owner** - Current owner |
| 51 | +- **Sharing** - Sharing level (🌐 Global, 📦 App, 🔒 Private) |
| 52 | +- **Views (7d)** - Number of views in the selected time range |
| 53 | +- **Edits (7d)** - Number of edits |
| 54 | +- **Errors (7d)** - Error count |
| 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 |
| 57 | +- **Performance** - Visual performance rating (⚡ Fast, ✓ Good, ⚠ Slow, ✗ Very Slow) |
| 58 | +- **Health** - Visual health status (✓ Healthy, ⚠ Warning, ✗ Critical, ☾ Stale) |
| 59 | + |
| 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 | + |
| 62 | +**Interactions:** |
| 63 | +- Click any dashboard name to open it directly |
| 64 | +- Click any other cell to view detailed analytics |
| 65 | +- Sort by any column |
| 66 | +- Paginated display (50 per page) |
| 67 | + |
| 68 | +### 3. Quick Access Buttons |
| 69 | + |
| 70 | +Direct links to common administrative pages: |
| 71 | +- **Manage All Dashboards** - Access Splunk's dashboard management interface |
| 72 | +- **Create New Dashboard** - Start creating a new dashboard |
| 73 | +- **Settings** - System settings and configuration |
| 74 | +- **Search** - Open the search interface |
| 75 | + |
| 76 | +### 4. Administrative Workflows Guide |
| 77 | + |
| 78 | +Built-in documentation for common tasks: |
| 79 | + |
| 80 | +#### Change Dashboard Ownership |
| 81 | +1. Click "Manage All Dashboards" |
| 82 | +2. Find the dashboard |
| 83 | +3. Click "Edit" → "Edit Permissions" |
| 84 | +4. Change the "Owner" field |
| 85 | +5. Save |
| 86 | + |
| 87 | +#### Move Dashboard Between Apps |
| 88 | +1. Click "Manage All Dashboards" |
| 89 | +2. Find the dashboard |
| 90 | +3. Click "Move" in the Actions column |
| 91 | +4. Select destination app |
| 92 | +5. Move |
| 93 | + |
| 94 | +#### Delete Dashboards (Bulk) |
| 95 | +1. Use filters to narrow down candidates (e.g., stale dashboards) |
| 96 | +2. Review the filtered list |
| 97 | +3. Click "Manage All Dashboards" |
| 98 | +4. Select and delete dashboards |
| 99 | + |
| 100 | +#### Change Permissions |
| 101 | +1. Click dashboard name to open it |
| 102 | +2. Click "Edit" → "Edit Permissions" |
| 103 | +3. Modify read/write permissions |
| 104 | +4. Set sharing scope (app or global) |
| 105 | +5. Save |
| 106 | + |
| 107 | +### 5. Bulk Action Recommendations |
| 108 | + |
| 109 | +Automated analysis that identifies dashboards requiring attention: |
| 110 | + |
| 111 | +- **Priority Levels**: URGENT, HIGH, MEDIUM, CONSIDER |
| 112 | +- **Action Types**: |
| 113 | + - Fix/Debug - Critical or warning health issues |
| 114 | + - Optimize - Performance improvements needed |
| 115 | + - Archive/Delete - Stale or unused dashboards |
| 116 | + - Review - General attention needed |
| 117 | + |
| 118 | +**Recommendations:** |
| 119 | +- "URGENT: Fix errors AND optimize performance" - Dashboard with critical health AND slow performance |
| 120 | +- "HIGH: Fix critical errors" - Dashboard with critical health issues |
| 121 | +- "HIGH: Optimize performance (very slow)" - Dashboard taking >10 seconds to load |
| 122 | +- "MEDIUM: Review and fix warnings" - Dashboard with warnings |
| 123 | +- "MEDIUM: Optimize performance" - Dashboard taking >5 seconds to load |
| 124 | +- "CONSIDER: Archive or delete if not needed" - Stale dashboard with zero views |
| 125 | + |
| 126 | +## Usage Examples |
| 127 | + |
| 128 | +### Example 1: Clean Up Stale Dashboards |
| 129 | +1. Set **Health Status** filter to "☾ Stale" |
| 130 | +2. Review the list of dashboards not viewed in 30+ days |
| 131 | +3. Check the "Bulk Action Recommendations" panel for specific guidance |
| 132 | +4. Use "Manage All Dashboards" to delete or archive them |
| 133 | + |
| 134 | +### Example 2: Transfer Ownership for Departing Team Member |
| 135 | +1. Set **Owner** filter to the departing user's username |
| 136 | +2. Review all their dashboards |
| 137 | +3. Note the apps and usage patterns |
| 138 | +4. Follow the "Change Dashboard Ownership" workflow for each dashboard |
| 139 | + |
| 140 | +### Example 3: Identify and Fix Performance Issues |
| 141 | +1. Set **Performance** filter to "✗ Very Slow" |
| 142 | +2. Review dashboards with >5 second load times |
| 143 | +3. Check "Views (7d)" to prioritize high-traffic dashboards |
| 144 | +4. Click dashboard name to open and investigate/optimize |
| 145 | + |
| 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 |
| 153 | +1. Set **App** filter to your production app name |
| 154 | +2. Set **Health Status** filter to "✗ Critical" |
| 155 | +3. Review error counts and view the recommendations |
| 156 | +4. Click each dashboard to view error details and fix |
| 157 | + |
| 158 | +### Example 6: Audit Dashboard Permissions |
| 159 | +1. Set **App** filter to specific app(s) |
| 160 | +2. Review the owner column |
| 161 | +3. Click each dashboard name to check permissions |
| 162 | +4. Follow the "Change Permissions" workflow to adjust as needed |
| 163 | + |
| 164 | +## Integration with Other CACA Views |
| 165 | + |
| 166 | +The CACA Admin Dashboard integrates seamlessly with other CACA dashboards: |
| 167 | + |
| 168 | +- **Dashboard Leaderboard** - High-level overview of all dashboards |
| 169 | +- **Poop Deck** - Deep-dive analytics for gems, crap, broken, and slow dashboards |
| 170 | +- **Dashboard Details** - Detailed metrics and history for individual dashboards |
| 171 | + |
| 172 | +Navigate between these views using the navigation menu or the links at the bottom of each dashboard. |
| 173 | + |
| 174 | +## Best Practices |
| 175 | + |
| 176 | +1. **Regular Audits**: Use the admin dashboard weekly or monthly to identify stale content |
| 177 | +2. **Performance Monitoring**: Set up a routine to check for slow dashboards and optimize them |
| 178 | +3. **Health Checks**: Regularly review dashboards with critical or warning status |
| 179 | +4. **Ownership Management**: Ensure all dashboards have active owners |
| 180 | +5. **Bulk Operations**: Use filters to batch similar administrative tasks |
| 181 | +6. **Documentation**: Update dashboard descriptions to help identify purpose during cleanup |
| 182 | + |
| 183 | +## Access Requirements |
| 184 | + |
| 185 | +To use the CACA Admin Dashboard effectively, you need: |
| 186 | + |
| 187 | +- Read access to the CACA metrics index (`caca_metrics`) |
| 188 | +- Read access to the dashboard registry lookup |
| 189 | +- Appropriate Splunk role permissions to: |
| 190 | + - View dashboards across apps |
| 191 | + - Edit dashboards (for modifications) |
| 192 | + - Manage dashboards (for delete/move operations) |
| 193 | + - Change permissions (for ownership and permission changes) |
| 194 | + |
| 195 | +## Troubleshooting |
| 196 | + |
| 197 | +### No Dashboards Appearing |
| 198 | +- Verify the dashboard registry is populated: `| inputlookup dashboard_registry` |
| 199 | +- Check that metrics are being collected: `| mstats count WHERE index=caca_metrics` |
| 200 | +- Ensure filters aren't too restrictive (try resetting to defaults) |
| 201 | +- **For private dashboards**: Ensure the "Dashboard Registry - Auto Update" scheduled search runs with appropriate permissions to discover private dashboards owned by other users |
| 202 | + |
| 203 | +### Filters Not Working |
| 204 | +- Click the "Submit" button after changing filters |
| 205 | +- Check for typos in the name filter (use wildcards: *) |
| 206 | +- Verify app/owner names match exactly what's in the registry |
| 207 | + |
| 208 | +### Private Dashboards Not Appearing |
| 209 | +- Private dashboards require the registry update search to run with admin privileges |
| 210 | +- Verify the search includes `search="sharing=*"` parameter in the REST call |
| 211 | +- Check if the user running the scheduled search has permissions to view other users' private content |
| 212 | +- Manually verify private dashboard exists: `| rest /services/data/ui/views search="sharing=*" | search owner="username" sharing="user"` |
| 213 | + |
| 214 | +### Links Not Working |
| 215 | +- Ensure you have appropriate permissions to access management pages |
| 216 | +- Some links require admin or power user roles |
| 217 | +- Check that you're logged into Splunk with sufficient privileges |
| 218 | + |
| 219 | +## Technical Details |
| 220 | + |
| 221 | +**File Location**: `default/data/ui/views/caca_admin.xml` |
| 222 | + |
| 223 | +**Dependencies**: |
| 224 | +- `dashboard_registry.csv` lookup |
| 225 | +- `caca_metrics` index |
| 226 | +- Search macro: `get_all_dashboards_summary` |
| 227 | + |
| 228 | +**Private Dashboard Support**: |
| 229 | +- The dashboard registry includes dashboards with all sharing levels: global, app, and user/private |
| 230 | +- The registry update search uses `search="sharing=*"` parameter to discover private dashboards |
| 231 | +- Viewing private dashboards owned by other users requires appropriate permissions |
| 232 | +- The scheduled search should run with admin privileges to capture all private dashboards across users |
| 233 | +- The `sharing` field in the registry indicates the sharing level of each dashboard |
| 234 | + |
| 235 | +**Performance Considerations**: |
| 236 | +- Initial load may take a few seconds if you have many dashboards |
| 237 | +- Filters are applied on submit to improve performance |
| 238 | +- Time range affects query performance (shorter = faster) |
| 239 | + |
| 240 | +## Future Enhancements |
| 241 | + |
| 242 | +Potential future improvements: |
| 243 | +- Bulk permission changes |
| 244 | +- Scheduled cleanup workflows |
| 245 | +- Dashboard cloning functionality |
| 246 | +- Export filtered list to CSV |
| 247 | +- Custom action templates |
| 248 | +- Integration with change management systems |
| 249 | + |
| 250 | +## Support |
| 251 | + |
| 252 | +For issues or feature requests, please open a GitHub issue in the CACA repository. |
0 commit comments