FIXES#303
Adds a pause button to freeze a snapshot of the current circuit
queue page.
Adds a "fast mode" and "slow mode" toggle. Slow mode continues
at a 1s update cadence. Fast mode uses animation frame support
to update at a good speed, at the expense of CPU usage.
Stores the preference in local storage, so it will resume the
same mode next time you visit the page.
See ISSUE #302
* Filter by FlowID
* Pagination is a select/drop-down
* Filtering is a select/drop-down
* Graph type is selectable from:
* Packet size (the previous view)
* Piano Roll (flows plotted by time)
* TCP Window (differntiated by flow)
Still very much a work-in-progress.
* Adds configuration entries for enabling long-term stats
collection (`gather_stats`) and collation period.
* Spawns a collection thread (if `gather_stats` is enabled)
that collects total traffic and per-host traffic/RTT
(with circuit ID) on the same 1s cadence as throughput
collection.
* Spawns a collator thread that gathers all of the collection
summaries generated since the last collation (every
`collation_period_seconds` seconds). The gathered stats are
divided into min/max/mean average for each circuit.
* Collated stats are handed to a submissions system, that is
currently a bare-bones "keep last" - this will be extended!
* Add a `lqstats` tool that lets you use the bus to see the
current long-term stats. This is very barebones, but will
provide a tool allowing stat extraction for inclusion in
external stats collectors (such as Zabbix), if you aren't
using the long-term stats server we're developing.
A value was transposed in the IPStats to IPStats transit
conversion. The UI now displays (max download/max upload)
correctly.
Fix an accidental inclusion of a console.log statement
logging needlessly.
A server-side ringbuffer retains just the last 5 minutes of throughput.
When the dashboard first loads, it collects all 5 minutes of data,
so nothing appears skipped. Subsequent updates query the latest
value in the buffer.
FIXES#317
FIXES#303
Adds a pause button to freeze a snapshot of the current circuit
queue page.
Adds a "fast mode" and "slow mode" toggle. Slow mode continues
at a 1s update cadence. Fast mode uses animation frame support
to update at a good speed, at the expense of CPU usage.
Stores the preference in local storage, so it will resume the
same mode next time you visit the page.
See ISSUE #302
* Filter by FlowID
* Pagination is a select/drop-down
* Filtering is a select/drop-down
* Graph type is selectable from:
* Packet size (the previous view)
* Piano Roll (flows plotted by time)
* TCP Window (differntiated by flow)
* Circuit queue - lazy rendering by active tab
Only perform network requests for the active tab on the
circuit_queue.html page. Small to moderate performance
improvement, but it greatly reduces the time spent polling.
* Significantly optimize network and rendering performance of the queues funnel display.
* Substantially improve performance on the flows display by using msgpack with a dictionary.
* Remove some commented code
* Fetch circuit info via efficient msgpack
* Use MsgPack for circuit throughput
* Get rid of the monstrosity that was copying queue data over the bus in a raw JSON string, hideously wasteful. Instead, we now have a 'transit' series of objects in the bus definition for tight encoding. This also cleaned up some node manager code. It's mostly useful for the next stage, which will start to reduce the amount of data we are transmitting.
* A lot of the redundant network transport is culled.
* More unused fields culled.
* Elimate a HUGE amount of garbage collection by allocating and reusing a single object, and cleaning up the JS rendering. Still not good enough.
* Switch to an efficient msgpack transmission format.
* Cleanup handling of 'none' in msgpack
* Fix scale delays to ms
* Commit to send to payne
* Use WebGL for a slight rendering boost.
* Further reduce draw time of circuit page by using redraw commands.
* Finish previous commit
* Use redraw with preallocated/non-GC data for all ringbuffer renders.
* Fix a rare issue with reloading network.json that could cause a stall.
* Optimize RTT graphs with the reload system.