Commit graph

760 commits

Author SHA1 Message Date
Michael Lange 340f3f12d4 Add more documentation to the format-duration util 2018-10-17 08:10:16 -07:00
Michael Lange 154dc49205 Be consistent with "time series" instead of "time-series" 2018-10-17 07:37:45 -07:00
Michael Lange ca631ee217 Override the a11y title and description for the stats time series chart
Since this is a use case specific chart, we can use use case specific
language in our labels.
2018-09-27 12:55:52 -07:00
Michael Lange cdb1831ceb Add a11y features to the line-chart component
- Treat it as an image
- Add a title and a description
- Hide the axes, just in case
2018-09-27 12:55:52 -07:00
Michael Lange 866b74be19 Add a longForm option to format-duration 2018-09-27 12:55:17 -07:00
Michael Lange c694fcb0ba Update stat tracker unit tests 2018-09-19 19:30:18 -07:00
Michael Lange 09497b20b8 Acceptance test coverage for all the pages with resource utilization graphs 2018-09-19 16:33:51 -07:00
Michael Lange f86347bc62 Always return valid dates for timestamps 2018-09-19 16:33:18 -07:00
Michael Lange da06b48aaf Handle the empty data cases 2018-09-19 16:32:53 -07:00
Michael Lange 46936b6091 Unit tests for the stats trackers service 2018-09-19 15:33:29 -07:00
Michael Lange 18b18da49f Integration tests for the primary-metric component 2018-09-19 14:15:32 -07:00
Michael Lange c93f6506dc Add cancelation support to stats trackers 2018-09-17 16:59:09 -07:00
Michael Lange bc5dbe2fb7 Gap support for line charts 2018-09-17 16:58:56 -07:00
Michael Lange 8900d5c138 Add request throttling to the abstract stats tracker
This is the best of three options

1. Users of stats trackers control polling (old method)
2. Stat tracker is stateful and has start/stop methods (like logging)
3. Stat trackers blindly throttle requests

This is the best option because it means N number of concurrent users of
a stats tracker can request polling without inundating the tracker with
redundant frames (or the network with redundant requests), but they also
don't have to coordinate amongst themselves to determine what state a
tracker should be in.
2018-09-17 15:58:28 -07:00
Michael Lange ae161d75bc Use the new stats tracker service to get stats trackers in primary metric 2018-09-17 15:57:58 -07:00
Michael Lange bc3a76da04 Clean up old controller code 2018-09-17 15:57:23 -07:00
Michael Lange fcf22fdbc4 New LRUMap dep 2018-09-17 15:55:48 -07:00
Michael Lange b7169596c1 New service to manage stats trackers
This solves two problems:

1. redundant trackers making redundant requests
2. trackers being obliterated as soon as the primary metric component
   is destroyed

It introduces a new problem where visiting more and more node and
allocation pages adds to an ever-growing list of trackers that can
assume lots of memory, but it solves the problem by using a
least-recently-used cache to limit the number of trackers tracked.
2018-09-17 15:53:59 -07:00
Michael Lange b675919c76 Add resource utilization graphs to the task index page 2018-09-14 10:21:48 -07:00
Michael Lange dace559442 Add resource utilization graphs to the allocation index page 2018-09-14 10:21:28 -07:00
Michael Lange 636d0c92fc Use the appropriate methods and types in the stat trackers 2018-09-14 10:21:01 -07:00
Michael Lange 80fefcf369 Style the primary-metric pattern 2018-09-14 10:20:33 -07:00
Michael Lange 379b17acbd Handle the length = 0 and length = 1 cases for activeDatum 2018-09-14 10:19:35 -07:00
Michael Lange 6a94ebc5fb Use the prototype instead of "private" property backups 2018-09-14 09:38:17 -07:00
Michael Lange a2db921c1f Make rollingArray work with mutable array extension methods 2018-09-14 08:57:26 -07:00
Michael Lange 01429a9b78 Remove old stat tracking code from the client page
In favor of the new primary-metric components
2018-09-13 17:01:24 -07:00
Michael Lange 10b9017d84 Use the new primary-metric component on the client detail page 2018-09-13 17:01:24 -07:00
Michael Lange 768f67e336 New primary-metric component
It encapsulates all the tracker, polling, and markup for this style
of metric.
2018-09-13 17:01:24 -07:00
Michael Lange 54efa8ddd5 Full markup for time series metrics 2018-09-13 17:01:24 -07:00
Michael Lange 93cf97a47b Add stat charts to the client page 2018-09-13 17:01:24 -07:00
Michael Lange b6382fe7dc Use percent for the y-axis binding 2018-09-13 17:01:24 -07:00
Michael Lange 7e431e8876 Use addObject to get kvo behaviors 2018-09-13 17:01:24 -07:00
Michael Lange 4a2b9cc153
Merge pull request #4661 from hashicorp/f-ui-line-chart
UI: line chart
2018-09-13 16:59:20 -07:00
Michael Lange 105d4aea79 Unit test coverage for the stats-time-series chart 2018-09-13 16:45:56 -07:00
Michael Lange 659e19303c Unit test coverage for the line chart component 2018-09-13 16:45:56 -07:00
Michael Lange 63b89904f3 Split the line-chart and stats-time-series freestyle entries 2018-09-13 16:45:56 -07:00
Michael Lange 569ba3c48a Updates to the styleguide 2018-09-13 16:45:56 -07:00
Michael Lange f2bab4591d Use "global" gradients via a clipping mask and a rect w/100% height 2018-09-13 16:45:54 -07:00
Michael Lange 05c7706487 Avoid race conditions around showing and hiding the line chart tooltip 2018-09-13 16:45:13 -07:00
Michael Lange 9008c48cd1 Stats time series
A use-case specific line-chart for showing utilization metrics by
percent
2018-09-13 16:45:13 -07:00
Michael Lange 7a8a4c32f4 Make the tooltip animation snappier for line charts
When data is coming in live, the tooltip can get bogged down by updates
causing the tooltip to never make it under the mouse, which looks like
either lag or a bug.
2018-09-13 16:45:13 -07:00
Michael Lange 46cceb2daa Don't round numbers when the domain is between 0 and 1 2018-09-13 16:45:13 -07:00
Michael Lange a74e6648b9 Styleguide entry for the line chart component 2018-09-13 16:45:13 -07:00
Michael Lange d516daf83e New line chart component 2018-09-13 16:45:08 -07:00
Michael Lange f15e3ba0c2 Test coverage for NodeStatsTracker 2018-09-11 16:27:06 -07:00
Michael Lange a97e0bcc5e Add support for non-list tooltips in charts 2018-09-07 09:57:54 -07:00
Michael Lange 2711abc3ce Add chart color swatches based on css colors 2018-09-07 09:57:33 -07:00
Michael Lange 1530eed9f7 Bring in new d3 dependencies 2018-09-07 09:55:39 -07:00
Michael Lange fbfc5ecb16 Example usage of the NodeStatsTracker 2018-08-31 14:39:23 -07:00
Michael Lange 680ac6c9b0 A StatsTracker for client-level statistics 2018-08-31 14:39:23 -07:00