Skip to content

Commit 1f553db

Browse files
authored
Comprehensive rewrite: Add configurable settings and improve collectors
2 parents 8454320 + 8b4a3ef commit 1f553db

12 files changed

Lines changed: 737 additions & 77 deletions

README.md

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ The app uses a three-stage pipeline for efficiency:
7777
All searches are configured with **low priority** to ensure they do not impact regular user searches or system performance. The searches use efficient `mcollect` commands to write directly to a metrics index, minimizing resource consumption.
7878

7979
## Status
80-
DRAFT - Work in Progress
80+
Version 1.0.0 - Production Ready
8181

8282
## Requirements
8383

@@ -406,6 +406,39 @@ Edit `default/indexes.conf` to adjust retention:
406406
frozenTimePeriodInSecs = 31536000 # 1 year (default)
407407
```
408408

409+
### Configurable Thresholds
410+
411+
CACA uses configurable thresholds stored in `lookups/caca_settings.csv`. You can customize these settings to match your environment:
412+
413+
| Setting | Default | Description |
414+
|---------|---------|-------------|
415+
| `error_threshold_warning` | 1 | Number of errors to trigger warning status |
416+
| `error_threshold_critical` | 10 | Number of errors to trigger critical status |
417+
| `load_time_fast` | 1000 | Load time (ms) considered fast |
418+
| `load_time_good` | 3000 | Load time (ms) considered good |
419+
| `load_time_slow` | 5000 | Load time (ms) considered slow |
420+
| `load_time_critical` | 10000 | Load time (ms) considered critical |
421+
| `stale_threshold_days` | 30 | Days without views to consider dashboard stale |
422+
| `engagement_edit_weight` | 2 | Weight multiplier for edits in engagement score |
423+
| `engagement_error_penalty` | 5 | Penalty multiplier for errors in engagement score |
424+
| `low_engagement_threshold` | 20 | Views below this in 30 days is low engagement |
425+
| `vip_percentile` | 90 | Percentile threshold for VIP/gem dashboards |
426+
427+
**To modify settings:**
428+
1. Navigate to **Settings → Lookups → Lookup table files**
429+
2. Find `caca_settings.csv` in the CACA app
430+
3. Edit the `setting_value` column for any setting
431+
4. Save changes
432+
433+
### Sample Data Generation (For Testing)
434+
435+
CACA includes saved searches to generate sample data for testing and demonstration:
436+
437+
1. **Generate Sample Registry**: Run `CACA - Generate Sample Registry` to populate the dashboard registry with 10 sample dashboards
438+
2. **Generate Sample Data**: Run `CACA - Generate Sample Data` to generate realistic metrics data
439+
440+
**Note:** These searches are disabled by default. Enable and run them manually from **Settings → Searches, reports, and alerts** when you need test data. Disable them in production environments.
441+
409442
### Filtering Apps for Monitoring
410443

411444
CACA can be configured to only monitor dashboards from specific apps, or exclude certain apps from monitoring. This is useful when you only want to track dashboards in production apps, or exclude system/admin apps.
@@ -583,6 +616,35 @@ We welcome contributions for any of these roadmap items or new feature ideas. Pl
583616

584617
## Release Notes
585618

619+
### Version 1.0.0 (Comprehensive Rewrite)
620+
621+
#### New Features
622+
- **Configurable Settings Lookup**: All thresholds (error levels, load times, stale detection, engagement scoring) are now configurable via `lookups/caca_settings.csv`
623+
- **Sample Data Generation**: New saved searches to generate test data for demonstration and testing purposes
624+
- **Enhanced Macros**: 25+ reusable search macros including:
625+
- Settings loading and retrieval macros
626+
- Stale and ghost dashboard detection
627+
- Engagement scoring and VIP dashboard identification
628+
- Customizable time range queries
629+
- System app filtering
630+
- **New Collectors**:
631+
- User engagement collector (tracks unique users per dashboard)
632+
- Registry cleanup job (removes orphaned entries weekly)
633+
- **Alerting**: Pre-built alerts for critical dashboards and slow performance
634+
- **Reports**: Daily activity summary and weekly trend reports
635+
636+
#### Improvements
637+
- Fixed all dashboard URL references to use correct app ID (`caca`)
638+
- Improved indexes.conf with metric-specific optimizations
639+
- Better error handling in all collectors
640+
- More robust field extraction in data collection
641+
- Improved performance with tsidx reduction enabled
642+
- Core data collection searches enabled by default (alerts and reports disabled by default)
643+
644+
#### Breaking Changes
645+
- App version bumped from 0.0.1 to 1.0.0
646+
- Some macro names have been updated for consistency
647+
586648
### Version 0.0.1
587649
- Initial draft
588650

app.manifest

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"id": {
66
"group": null,
77
"name": "caca",
8-
"version": "0.0.1"
8+
"version": "1.0.0"
99
},
1010
"author": [
1111
{
@@ -15,11 +15,11 @@
1515
}
1616
],
1717
"releaseDate": null,
18-
"description": "CACA (Content Activity Checking Application) - Track usage, health, and lifecycle of your Splunk dashboards",
18+
"description": "CACA (Content Activity Checking Application) - Monitor dashboard usage, health, performance, and lifecycle. Track views, edits, errors, and load times to identify high-value content, stale dashboards, and performance issues.",
1919
"classification": {
2020
"intendedAudience": "IT",
2121
"categories": ["IT Operations", "Monitoring"],
22-
"developmentStatus": "Beta/Draft"
22+
"developmentStatus": "Production"
2323
},
2424
"commonInformationModels": null,
2525
"license": {

default/app.conf

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
[install]
2-
is_configured = 0
2+
is_configured = 1
3+
build = 1
34

45
[ui]
56
is_visible = 1
67
label = CACA - Content Activity Checking Application
78

89
[launcher]
910
author = Devin Slick
10-
description = CACA (Content Activity Checking Application) - Track usage, health, and lifecycle of your Splunk dashboards
11-
version = 0.0.1
11+
description = CACA (Content Activity Checking Application) - Monitor dashboard usage, health, performance, and lifecycle. Track views, edits, errors, and load times to identify high-value content, stale dashboards, and performance issues.
12+
version = 1.0.0
1213

1314
[package]
1415
id = caca

default/data/ui/views/caca_admin.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@
392392
<link target="_blank">$row.Dashboard URI$</link>
393393
</condition>
394394
<condition field="*">
395-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard Name$</link>
395+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard Name$</link>
396396
</condition>
397397
</drilldown>
398398
</table>
@@ -415,7 +415,7 @@
415415
<a href="/manager/caca/apps/local" target="_blank" class="btn btn-secondary" style="min-width: 200px; text-align: center; padding: 12px 20px;">
416416
⚙️ Settings
417417
</a>
418-
<a href="/en-US/app/splunk-content-monitoring-console/search" target="_blank" class="btn btn-secondary" style="min-width: 200px; text-align: center; padding: 12px 20px;">
418+
<a href="/app/caca/search" target="_blank" class="btn btn-secondary" style="min-width: 200px; text-align: center; padding: 12px 20px;">
419419
🔍 Search
420420
</a>
421421
</div>
@@ -532,7 +532,7 @@
532532
<option name="precision">0</option>
533533
</format>
534534
<drilldown>
535-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard Name$</link>
535+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard Name$</link>
536536
</drilldown>
537537
</table>
538538
</panel>
@@ -543,8 +543,8 @@
543543
<panel>
544544
<html>
545545
<div style="text-align: center; padding: 20px;">
546-
<a href="/app/splunk-content-monitoring-console/dashboard_leaderboard" class="btn btn-primary" style="margin: 5px;">← Back to Dashboard Leaderboard</a>
547-
<a href="/app/splunk-content-monitoring-console/poop_deck" class="btn btn-secondary" style="margin: 5px;">View Poop Deck Analysis</a>
546+
<a href="/app/caca/dashboard_leaderboard" class="btn btn-primary" style="margin: 5px;">← Back to Dashboard Leaderboard</a>
547+
<a href="/app/caca/poop_deck" class="btn btn-secondary" style="margin: 5px;">View Poop Deck Analysis</a>
548548
</div>
549549
</html>
550550
</panel>

default/data/ui/views/dashboard_details.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@
227227
<row>
228228
<panel>
229229
<html>
230-
<a href="/app/splunk-content-monitoring-console/dashboard_leaderboard" class="btn btn-primary">← Back to Dashboard Leaderboard</a>
230+
<a href="/app/caca/dashboard_leaderboard" class="btn btn-primary">← Back to Dashboard Leaderboard</a>
231231
</html>
232232
</panel>
233233
</row>

default/data/ui/views/dashboard_leaderboard.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@
171171
<option name="precision">0</option>
172172
</format>
173173
<drilldown>
174-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard Name$</link>
174+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard Name$</link>
175175
</drilldown>
176176
</table>
177177
</panel>
@@ -264,7 +264,7 @@
264264
<option name="precision">0</option>
265265
</format>
266266
<drilldown>
267-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
267+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
268268
</drilldown>
269269
</table>
270270
</panel>

default/data/ui/views/poop_deck.xml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@
168168
<option name="precision">0</option>
169169
</format>
170170
<drilldown>
171-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
171+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
172172
</drilldown>
173173
</table>
174174
</panel>
@@ -215,7 +215,7 @@
215215
<option name="precision">0</option>
216216
</format>
217217
<drilldown>
218-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
218+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
219219
</drilldown>
220220
</table>
221221
</panel>
@@ -273,7 +273,7 @@
273273
<option name="precision">0</option>
274274
</format>
275275
<drilldown>
276-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
276+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
277277
</drilldown>
278278
</table>
279279
</panel>
@@ -329,7 +329,7 @@
329329
<option name="precision">0</option>
330330
</format>
331331
<drilldown>
332-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
332+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
333333
</drilldown>
334334
</table>
335335
</panel>
@@ -382,7 +382,7 @@
382382
<option name="precision">0</option>
383383
</format>
384384
<drilldown>
385-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
385+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
386386
</drilldown>
387387
</table>
388388
</panel>
@@ -434,7 +434,7 @@
434434
<option name="precision">2</option>
435435
</format>
436436
<drilldown>
437-
<link target="_blank">/app/splunk-content-monitoring-console/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
437+
<link target="_blank">/app/caca/dashboard_details?form.dashboard_name=$row.Dashboard$</link>
438438
</drilldown>
439439
</table>
440440
</panel>
@@ -445,8 +445,8 @@
445445
<panel>
446446
<html>
447447
<div style="text-align: center; padding: 20px;">
448-
<a href="/app/splunk-content-monitoring-console/dashboard_leaderboard" class="btn btn-primary" style="margin: 5px;">← Back to Dashboard Leaderboard</a>
449-
<a href="/app/splunk-content-monitoring-console/search" class="btn btn-secondary" style="margin: 5px;">Open in Search</a>
448+
<a href="/app/caca/dashboard_leaderboard" class="btn btn-primary" style="margin: 5px;">← Back to Dashboard Leaderboard</a>
449+
<a href="/app/caca/search" class="btn btn-secondary" style="margin: 5px;">Open in Search</a>
450450
</div>
451451
<div style="text-align: center; padding: 10px; color: #708794; font-style: italic;">
452452
<p>💡 Pro Tip: Use the stale threshold dropdown to adjust what counts as "crap" in your environment.</p>

default/indexes.conf

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,24 @@
1-
# Metrics index for dashboard monitoring data
1+
# Metrics index for CACA - Content Activity Checking Application
2+
# This index stores all dashboard usage, health, and performance metrics
3+
24
[caca_metrics]
35
datatype = metric
4-
homePath = $SPLUNK_DB/caca_metrics/db
5-
coldPath = $SPLUNK_DB/caca_metrics/colddb
6+
homePath = $SPLUNK_DB/caca_metrics/db
7+
coldPath = $SPLUNK_DB/caca_metrics/colddb
68
thawedPath = $SPLUNK_DB/caca_metrics/thaweddb
7-
# Retain metrics for 1 year by default
9+
10+
# Retain metrics for 1 year (365 days) by default
11+
# Adjust based on your retention requirements
812
frozenTimePeriodInSecs = 31536000
13+
14+
# Bucket management settings
15+
maxWarmDBCount = 300
16+
17+
# Enable tsidx reduction for better metric performance
18+
enableTsidxReduction = true
19+
tsidxReductionCheckPeriodInSec = 600
20+
21+
# Metric-specific optimizations
22+
# These settings help with high-cardinality metrics
23+
metric.timestampResolution = s
24+
metric.maxHotBuckets = 10

0 commit comments

Comments
 (0)