Skip to content

feat: performance statistics page#17

Merged
eclectic-coding merged 2 commits into
mainfrom
feat/performance-stats-page
May 26, 2026
Merged

feat: performance statistics page#17
eclectic-coding merged 2 commits into
mainfrom
feat/performance-stats-page

Conversation

@eclectic-coding
Copy link
Copy Markdown
Owner

Summary

  • GET /stats — new StatsController aggregates all finished jobs by class name in Ruby (portable across SQLite, Postgres, MySQL) and computes execution count, avg, p50, p95, min, and max duration
  • Sortable columns — every column header is a sort link toggling ?sort=&direction=; defaults to p95 descending so the slowest outliers surface first
  • format_duration extended — now handles sub-second (Xms), fractional seconds (X.Xs with trailing .0 stripped via %g), minutes, and hours; fixes the pre-existing history spec that depended on whole-second output
  • "Stats" link added to the queue subnav
  • Sortable table header CSSth a inherits muted colour, hover lifts to text colour, sort indicator sits inline

Test plan

  • Visit /stats with no finished jobs — shows empty state
  • Seed some jobs (bundle exec rake dev:reset) and visit /stats — table shows per-class rows with formatted durations
  • Click column headers — sort order toggles asc/desc, active column shows arrow indicator
  • Default load sorts by p95 descending
  • bundle exec rake passes (167 examples, 0 failures)

🤖 Generated with Claude Code

eclectic-coding and others added 2 commits May 25, 2026 21:44
…h sortable columns

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eclectic-coding eclectic-coding merged commit 864422c into main May 26, 2026
5 checks passed
@eclectic-coding eclectic-coding deleted the feat/performance-stats-page branch May 26, 2026 01:46
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