Commit Graph

37 Commits

Author SHA1 Message Date
Michael Lange
c95821e84e Make your tests orders of magnitude faster with One Neat Trick™ 2018-11-06 16:17:21 -08:00
Michael Lange
9f98029898 Gracefully handle response errors in stat trackers
1. Check if the response is a 4xx/5xx
2. If it is, skip the append step and track a frame miss
3. If enough frame misses occur in a row, treat it as a pause

A "pause" is when a null data frame is added, which shows up as a
gap in line charts.
2018-11-01 22:08:57 -07:00
Michael Lange
4d5fa15ea7 Remove no longer used allocation-stats class 2018-09-26 10:59:26 -07:00
Michael Lange
47ec74eb3a Update stat tracker unit tests 2018-09-19 19:30:18 -07:00
Michael Lange
866f650de8 Acceptance test coverage for all the pages with resource utilization graphs 2018-09-19 16:33:51 -07:00
Michael Lange
01195a810c Unit tests for the stats trackers service 2018-09-19 15:33:29 -07:00
Michael Lange
8de545c1b7 Add cancelation support to stats trackers 2018-09-17 16:59:09 -07:00
Michael Lange
f0208c0a24 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
f84b145401 Use the appropriate methods and types in the stat trackers 2018-09-14 10:21:01 -07:00
Michael Lange
adc05976c2 Use the prototype instead of "private" property backups 2018-09-14 09:38:17 -07:00
Michael Lange
9a102b73b9 Make rollingArray work with mutable array extension methods 2018-09-14 08:57:26 -07:00
Michael Lange
48910d8334 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
4cd9164d4e Use addObject to get kvo behaviors 2018-09-13 17:01:24 -07:00
Michael Lange
c455a399dd A StatsTracker for client-level statistics 2018-08-31 14:39:23 -07:00
Michael Lange
405cf822d8 Unit Tests for AllocationStatsTracker 2018-08-31 14:39:22 -07:00
Michael Lange
d25c0d60b9 Unit tests for RollingArray 2018-08-31 14:39:22 -07:00
Michael Lange
1df44a6d08 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
5c5e44df61 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
a8480fab30 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 Lange
f50aff562c Treat filtering on an async relationship as async 2018-08-06 11:02:21 -07:00
Michael Lange
90ea4f0f21 Update all the awkward browserify imports to plain ol' es6 imports 2018-07-06 13:38:57 -07:00
Michael Lange
65adc3857f The stream logger should not be supported in Safari
Not until the bugs around https are worked out.
2018-05-24 18:16:43 -07:00
Michael Lange
ab49b7a235 The poll logger needs to handle empty frames. 2018-05-24 18:16:42 -07:00
Michael Lange
286b3d9671 Refactor the way allocation stats are fetched
No longer treat it as a property for relationship, just ephemeral
data that can be fetched on demand.
2018-03-22 14:34:13 -07:00
Michael Lange
54b1101989 QueryParams primitive ported with a helper
This QueryParams object is defined in Ember source, but it isn't
public, which means there is no out of the box way to construct
the query params arg for LinkTo in JavaScript
2018-03-13 16:34:01 -07:00
Michael Lange
5346f653a5 Fallback to using the nomad server for log streaming
Only when the client isn't accessible
2018-02-26 12:23:47 -08:00
Michael Lange
2e19c2d877 Use the new ember modules imports
Generated with a codemode:
https://github.com/ember-cli/ember-modules-codemod
2018-01-17 09:02:04 -08:00
Michael Lange
d53849d2a5 Disambiguate what to do with the child task for the task logger
linked tasks are killed when the parent task is killed.
2018-01-17 09:02:04 -08:00
Michael Lange
981c34ba84 Explain the magical logging constant 2017-11-21 15:05:28 -08:00
Michael Lange
cca4bc94e0 Move the stream support check to the stream logger 2017-11-21 14:57:19 -08:00
Michael Lange
bc3f02b227 Use the b64 log format to track offsets for pause/play support 2017-11-21 11:22:42 -08:00
Michael Lange
6447785861 Use offset numbers in the polling mechanism 2017-11-21 11:22:42 -08:00
Michael Lange
0dce1ec659 Integration tests for the task-log component 2017-11-21 11:22:42 -08:00
Michael Lange
20ac6c07df Move logging logic from the controller to a component 2017-11-21 11:22:42 -08:00
Michael Lange
5735fca9cf Log class for interfacing with log APIs
Supports:
  - Reading the head of a log
  - Reading the tail of a log
  - Following a log in one of two ways:
    - Streaming the HTTP request (using fetch res.getReader)
    - Polling the log endpoint (using EC timeouts)
2017-11-21 11:22:41 -08:00
Michael Lange
0d299b60df Provides a slim TextDecoder polyfill for Edge 2017-11-21 11:22:41 -08:00
Alex Dadgar
ddc2efa4ac sync 2017-09-19 10:08:23 -05:00