Brendon Jones's blog
Spent the week working on graphs for the AMP web interface. Added
colouring based on loss to the smokeping graphs and made sure that the
y-axis is always long enough to accommodate the smokey peaks rather than
following the median line.
Started to work on an event graph type that can be added to any of the
existing time series graphs. It currently draws hardcoded events as
vertical bars on the graph with mouse highlighting and tooltips describing
the event. Spoke to Shane about the event API and started to implement the
code to fetch events dynamically based on the graph.
Spent a little bit of time getting the wrampsim software working in the
student labs again. Something in the layout code appears to have changed,
which was causing elements to be rendered in the wrong place.
Finished up the python decoder for the http test to properly extract
results from the reported data.
Got most of the core functionality in place to create smokeping style
timeseries graphs to display data we've collected from smokeping sources.
Once I have feature parity I hope to start marking events on the graphs,
as well as extending them to be used with other data sources (for example,
this would be really cool to use with AMP latency tests).
Got enough of the Debian packaging sorted for new AMP to have it build an
install the client software, along with some basic default configuration
files, man pages, init scripts, etc. Updated some of the build scripts to
properly use configurable file locations rather than hard-coded ones so
that files end up in the right place (but different places) both when
building manually and when building the package.
Also had to build libwandevent packages for Debian to install new AMP. Got
both installed on prophet using the new packages, and it is now running
again, collecting data.
Added syslog support to the AMP logging and built an rsyslogd config file
to redirect messages to the appropriate file.
Added proper reporting to the HTTP test so that programs reading from the
rabbitmq queue can can do useful things with it. Wrote most of a python
decoder for the test so that Shane can store the data.
Had a chat to Richard Sanger about adding web10g data to the AMP
throughput test and got him set up with the current code.
Finished porting the main part of the http test to the new AMP. It runs
fine as a standalone program, but I still need to add the new style of
reporting to be able to send test data back to the collector.
Started packaging the new AMPlet code for Debian to make installation and
distribution easier for testing. It's a little bit more involved than I
thought it would be, as the build process has become a lot more automagic
since I last created a package from scratch.
Worked with Shane to get smokeping data exported to the web API to graph.
In doing so, found and fixed a few issues with the binned timestamps that
meant the data always looked old, even when it was up to date.
Started working on adding a new graph type to properly show smokeping data
(and any other data type where we have plenty of measurements, such as the
AMP latency tests). While doing this I found that the graphs would never
quite show the most recent data if I zoomed in with the select box, so I
started to investigate that. I don't want to jump to conclusions
and attribute the error to the library, but it appears that envision.js is
possibly off by one when calculating the selected area. This combined with
the fairly aggressive binning of the summary graph means we lose a fair
chunk of data off the end (one bin). Will need to look more into this and
see if it isn't actually a problem with the data or its presentation.
Made a few small updates to AMP for the NLNOG RING and got some good
feedback from them and others who are using AMP.
Finished up porting the traceroute test to new AMP, as well as writing the
supporting modules that allow for reading and decoding result data coming
off the broker. Wrote an importer for NNTSC to deal with the data and
properly save it into the database. Started work on porting the HTTP test.
Built a minimal scamper RPM to use with the AMP RPMs on our test
deployment on a perfsonar node.
Almost completed porting the traceroute test to new AMP, but it will need
further testing to make sure that edge cases are properly dealt with
and that the behaviour is the same (except where intentionally different).
Added a few features such as reporting latency to each hop and will soon
allow some more configuration of packet sizes etc.
Had a good chat with Nevil and Brian on Friday about mPlane and data
storage, and how we might be able to have mPlane and our own software
Updated the loss and jitter graphs to use the new style graphs, same as
the latency one is using. Made some general improvements now that the
graph functionality is mostly there, including fixing up some reliance on
global variables and making sure that ajax requests are properly cancelled
if they are superseded.
Started to port the original AMP traceroute test to new AMP to collect
data for Shane to test his database schemas with.
Short week this week as I was off for a few days with the flu.
Tidied up the AMP RPMs a bit more, adding init scripts, man pages etc.
Wrote up a quick bit of documentation in the wiki too so that this will be
quicker and easier to do next time.
Tracked down some of the last remaining problems before achieving feature
parity with the new AMP graphs - adding interaction to both the summary
and detail graphs, etc. Also fixed the line graphs to be properly
discontinuous when data is missing and added the ability to easily go back
one zoom level by clicking.
Rewrote portions of the AMP graphing from scratch to make sense of what it
was trying to do and now have a much better understanding of the flow of
data. Tracked down exactly how and why redundant data was being fetched,
this is now stored to be reused. Continued to simplify the internal graph
API, removing and merging functions that do almost identical work.
Had a good meeting with Brad and Shane to discuss how we should go about
structuring the interaction between the NNTSC backend and various graphing
frontends, such that we can reuse a lot of the elements.
Spent some time looking at RPMs and packaging AMP for centos. The hope is
for it to be easy to install and run on a perfsonar node alongside all the
other measurements. I've got the core of packages for the amplet client
and configuration building nicely, but still need to finish the little
bits that make the package install nicely (init scripts, man pages, etc).