Commit graph

12547 commits

Author SHA1 Message Date
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 20f68ec771
Merge pull request #4635 from hashicorp/f-ui-stat-trackers
UI: Stats trackers
2018-09-13 16:41:48 -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
Michael Lange 3d761b7347 Unit Tests for AllocationStatsTracker 2018-08-31 14:39:22 -07:00
Michael Lange 416de6c32a Unit tests for RollingArray 2018-08-31 14:39:22 -07:00
Michael Lange f5fa5101b4 Example of usage of the AllocationsStatsTracker 2018-08-31 14:39:22 -07:00
Michael Lange da4852a6cd An implementation of StatsTracker for allocations
It accumulates CPU and Memory usage for the allocation as a whole as well
as by task.
2018-08-31 14:39:22 -07:00
Michael Lange e1e89ce92f An abstract class for capturing nomad stats
It follows the form of poll -> json parse -> append,
Where append is defined in subclasses to add data from the new frame
to long-lived rolling arrays of data.
2018-08-31 14:39:22 -07:00
Michael Lange 0c35f189e9 An array subclass that enforces a maxLength
The maxLength is enforced by removing elements from the head of the
list.
2018-08-31 14:39:22 -07:00
Michael Schurter 36073157fb
Merge pull request #4620 from hashicorp/f-optional-race
Add a -race enabled build to Travis
2018-08-31 14:03:28 -07:00