Skip to content

feat: dashboard perf and config - #8

Merged
hackf5 merged 6 commits into
mainfrom
dashboard-perf
Jul 3, 2026
Merged

feat: dashboard perf and config#8
hackf5 merged 6 commits into
mainfrom
dashboard-perf

Conversation

@hackf5

@hackf5 hackf5 commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Summary

Adds database-backed operational configuration and dashboard controls for cleanup settings, concurrency group limits, queued-job
cancellation, and metrics inspection.

Changes

  • Add persisted cleanup configuration for terminal jobs, job events, and metrics, with a new dashboard Settings page.
  • Add terminal job retention cleanup services for worker/dashboard hosts.
  • Add Postgres metrics rollup tables and dashboard metrics snapshot caching.
  • Add queued-job cancellation via IJobManager.CancelQueuedJobsAsync.
  • Add dashboard editing for concurrency groups:
    • code-defined default limit
    • live override limit
    • reset override back to default
    • Postgres generated effective_limit = coalesce(configured_limit, default_limit, 1)
  • Expand dashboard/job inspection queries and provider contracts for the new operational views.
  • Bump Postgres schema version to 13.

Notes

This includes a Postgres migration adding settings, metrics rollup storage, and concurrency-group default/effective limit columns. Startup
code should use SetDefaultLimitAsync(...) for concurrency limits so dashboard overrides survive redeploys.

Verification

  • dotnet build Sheddueller.slnx --configuration Release
  • dotnet test --solution Sheddueller.slnx --configuration Release
  • dotnet format Sheddueller.slnx --verify-no-changes --verbosity minimal

hackf5 added 6 commits July 3, 2026 11:48
- Added JobRetentionOptions to configure cleanup of terminal jobs.
- Introduced IJobRetentionStore interface for managing job retention.
- Implemented ShedduellerJobRetentionService and DashboardJobRetentionService for background cleanup tasks.
- Created CancelQueuedJobsRequest and related operations for canceling queued jobs in the store.
- Developed PostgresJobRetentionOperation and CancelQueuedJobsOperation for PostgreSQL backend.
- Enhanced tests for job retention and cancellation, including contract tests for job retention store.
- Updated RegistrationTests to ensure proper registration of retention services.
- Introduced new tables: `metrics_buckets`, `metrics_histogram_bins`, and `metrics_rollup_state` to track job metrics.
- Implemented logic for recording job events and updating metrics in the database.
- Added cleanup functionality to remove old metrics data based on retention policy.
- Created a caching mechanism for dashboard metrics to improve performance.
- Added tests to ensure metrics rollup and caching work as expected.
- Implemented a new Settings.razor component for managing cleanup settings in the Sheddueller dashboard.
- Introduced ShedduellerCleanupConfiguration, JobRetentionCleanupConfiguration, JobEventCleanupConfiguration, and MetricsCleanupConfiguration records to encapsulate cleanup settings.
- Created IShedduellerCleanupConfigurationStore interface for storing and retrieving cleanup configurations.
- Developed PostgresCleanupConfigurationOperation for handling cleanup configuration operations in PostgreSQL.
- Added unit tests for cleanup configuration operations and job retention service to ensure correct functionality.
- Updated PostgresMigrationTests to verify the creation of the settings table in the database.
- Enhanced PostgresRegistrationTests to include checks for the new cleanup configuration store.
- Added support for setting and clearing concurrency group default limits.
- Introduced new operations: SetConcurrencyDefaultLimitOperation and ClearConcurrencyLimitOverrideOperation.
- Updated the database schema to include effective_limit and default_limit columns in the concurrency_groups table.
- Modified existing operations and queries to utilize effective_limit instead of configured_limit.
- Enhanced the IConcurrencyGroupManager interface with methods for managing default limits.
- Updated related tests to cover new functionality and ensure correct behavior of concurrency limits.
@hackf5
hackf5 merged commit 97391ac into main Jul 3, 2026
3 checks passed
@hackf5
hackf5 deleted the dashboard-perf branch July 3, 2026 13:35
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