* Refactor job query
* First attempt at a histogram chart
* Explore a box plot chart
* Show 3 chart variations
* Outline boxes instead of solid boxes
* Remove box plot chart
* Use linear y-axis
This matches the axis for the metrics overview page, and it clarifies the data.
* Data tables for job metrics
* Add histogram totals chart
* Move things around
* Tooltip for histogram chart
* Fix deploy tooltip
* Extract marks query
* Extract chart base class
* Renaming
* Ensure a min radius for histogram bubbles
High job counts can result in a very small multiplier, which was making some of the bubbles too small to be visible.
* Round everything to two decimals for consistency
* styling for metrics headers
* Show emdash when timing info is n/a
* No job results found message
* No need for metrics header
* Add multi-line chart for total execution time by job
* Fiddling with the UX
* Refactor metrics `top_jobs` query
* debugging
* revert debugging
* revert debugging
* Add failed and avg time, just one data table
* Add color swatch in data table
* Measure in seconds
* Fix duplicate color
* standard style
* Rename for clarity
* Bring back empty metrics test
* Execution time is not consistent, assert processed counts instead
* Only include top 5 in chart, change swatch element to checkbox
* Wire up the checkboxes to show/hide each job class on the chart
* The checkboxes should not appear disabled
* Ensure seconds for y-axis to match table and UX improvements
- All data shown on metrics page is now in seconds
- Tooltip now includes "UTC" with the time
- Tooltip rounds the number of seconds and includes "seconds"
* Show deploy marks in metrics chart
* Fix annotation position when updating datasets
* Remove deploy labels on chart
We shouldn't assume the first word of the label is the git SHA, and the label annotations were hacky anyway.
* tweaks
Co-authored-by: Mike Perham <mperham@gmail.com>
* New execution stats data format, #5283
We store time and counts per-queue, per-class and totals, daily.
* break metrics into separate jobs and queues hashes
* tweak
* Move metrics tracking to middleware, start work on Query API
* Add support for labeled points in time
* Add fetch method for deploy marks
* rejigger metrics file layout
* fix tests
* Remove per-queue metrics, adds a lot of complexity with little value IMO
* store per-minute histograms
* Keep basic stats hardwired as is
The idea being that metrics are optional middleware as they have significantly more overhead in CPU time and Redis space.
* Implement top N metrics dashboard
* Add topN and job-specific metric pages
* Supply histogram data to job metrics page
* cant use local time as CI is in a different tz
* Add basic metrics graph, refactor dashboard JS to make Rickshaw reuseable
* prepare for public beta