Your Grafana has 400 dashboards. Your team actively uses about 20. The other 380 are dead — but they still cost you ingest, storage, and clutter.
Here's how to audit and prune without breaking anything critical.
Step 1: Measure usage
Most dashboard tools have an access log or equivalent. Query it. Get 'last-viewed time per dashboard.'
Anything not viewed in 90 days is a candidate. Anything not viewed in 180 days is almost certainly dead.
Step 2: Categorize
Go through the candidate list and tag each one:
- Dead — no views, no obvious owner, safe to delete
- Archived — hasn't been used but might be useful later (e.g., old migration dashboard)
- On-call critical — not regularly viewed but critical during incidents
- Unknown — you're not sure; needs investigation
Step 3: The 30-day warning
Don't delete yet. Add a banner to each 'dead' dashboard: 'This dashboard will be deleted on [date] unless someone protests.'
Cross-post to #engineering. Watch for objections.
Step 4: Delete
After 30 days, delete the dead ones. Keep a backup of the JSON exports for 6 months in case of emergency.
Step 5: Trim the metrics
Once dashboards are gone, audit the metrics those dashboards referenced. If a metric has no remaining dashboard or alert, stop collecting it. This is where the real savings come in.
The cost savings
On my last audit we deleted 280 dashboards and turned off 1,200 custom metrics. Monthly ingest cost dropped 25%. Not even close to the biggest win — the biggest win was that the remaining dashboards were easier to find because the clutter was gone.
The cadence
Do this every 6 months. Treat it as normal maintenance, not a special project. Teams that skip this accumulate observability debt the same way they accumulate technical debt.
Written by Dr. Samson Tanimawo
BSc · MSc · MBA · PhD
Founder & CEO, Nova AI Ops. https://novaaiops.com
Top comments (0)