Skip to content

Add FinOps monitoring collectors and reporting views#464

Merged
erikdarlingdata merged 1 commit intodevfrom
feature/finops-monitoring
Mar 7, 2026
Merged

Add FinOps monitoring collectors and reporting views#464
erikdarlingdata merged 1 commit intodevfrom
feature/finops-monitoring

Conversation

@erikdarlingdata
Copy link
Owner

Summary

  • 4 FinOps reporting views on existing data: per-database resource rollup, utilization efficiency scoring (over/under/right-provisioned), hour-of-day peak utilization windows, and per-application connection attribution
  • Database size collector: tracks per-file sizes via sys.master_files + FILEPROPERTY with Azure SQL DB variant, 60-min frequency, 90-day retention for growth trending
  • Server properties collector: captures edition, version, CPU/memory hardware, and Enterprise feature usage via dm_db_persisted_sku_features, daily collection with deduplication, 365-day retention for license audit
  • Full Lite parity: DuckDB schema v16, two new C# collector partials, schedule registration
  • Upgrade script for existing installations (schedule entry insertion)

Files

  • install/52_collect_database_size_stats.sql — new collector
  • install/53_collect_server_properties.sql — new collector
  • install/54_create_finops_views.sql — 4 reporting views
  • Lite/Services/RemoteCollectorService.DatabaseSize.cs — Lite collector
  • Lite/Services/RemoteCollectorService.ServerProperties.cs — Lite collector
  • upgrades/2.1.0-to-2.2.0/05_add_finops_collectors.sql — upgrade script
  • Modified: table definitions, schedule registration, master collector dispatch, Schema.cs, DuckDbInitializer (v16), ScheduleManager

Test plan

  • Fresh install on sql2022 — verify tables, procs, views, schedule entries
  • EXEC collect.database_size_stats_collector @debug = 1 on sql2022
  • EXEC collect.server_properties_collector @debug = 1 on sql2022
  • Query all 4 report.finops_* views
  • Test on sql2016 (FOR XML PATH fallback, no STRING_AGG)
  • Lite build and collector execution
  • Upgrade path test

🤖 Generated with Claude Code

… reporting views

Tier 1 — Four reporting views on existing collected data:
- report.finops_database_resource_usage: per-database CPU, I/O, execution rollup
- report.finops_utilization_efficiency: over/under/right-provisioned scoring
- report.finops_peak_utilization: hour-of-day utilization heatmap
- report.finops_application_resource_usage: per-application connection attribution

Tier 2 — Two new collectors (Dashboard + Lite):
- database_size_stats: per-file sizes via sys.master_files + FILEPROPERTY, with
  Azure SQL DB variant, 60-min frequency, 90-day retention for growth trending
- server_properties: edition, version, CPU/memory hardware, Enterprise feature
  usage via dm_db_persisted_sku_features, daily collection, 365-day retention,
  deduplication via row hash

Includes install scripts (52, 53, 54), table definitions, schedule registration,
master collector dispatch, ensure_collection_table entries, upgrade script for
existing installations, Lite DuckDB schema v16, and two new C# collector partials.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 27dc20a into dev Mar 7, 2026
2 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant