User login

Weekly Report - 22/11/13

22

Nov

2013

I spent this week continuing work on the rainbow graph, implementing the following features:

* Mouse tracking (no conflict with mouse tracking for events)
* Option to measure latency instead of hop count
* Optional minimum height for points/bars to give improved readability at the expense of a small degree of accuracy
* Out of order data points will be set to the minimum height and stacked on top of previous points (e.g. in the case of a traceroute where the second hop has a latency coincidentally less than the first hop)
* Improved caching for more efficient traversal of data points in many cases, particularly mouse tracking

I began looking at how events could be better marked on graphs given that as lines, they may currently be easily confused with data points depending on the graph type and density of points. I have been pursuing the idea of drawing event markers above the plot area (along with the existing lines) and I think this seems to be an effective way to tell at a glance where events fall. I've implemented this using a plugin, which can draw directly to the canvas as opposed to only the plot area that is normally accessible to a graph type. A convenient side effect of this is the ability to draw events either behind or in front of the data points because plugins can intercept beforedraw and afterdraw (Flotr) events. Events are currently drawn behind data, but the rainbow graph is one example of where they may be more appropriately drawn in front. In this implementation I also rewrote how events are processed to favor caching, and addressed a minor bug in one of Flotr's internal plugins.