check_tsd: add a --rate flag.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Update asynchbase, Netty, and suasync.
Don't log an "Unexpected exception" when a client connection times out.
Fix for 30d integer overflow in DateTimeBox.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Properly allow use of both axis with a log scale.

This closes #92.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Add styling options to smooth curves.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Additional accessors to BuildData to avoid cross-jar inlining.

This closes #101.
Add the ability to use mouse for drag-to-zoom on graphs.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Stop tracking mouse movements when not using the zoom box.
Add -W (downsample window) flag.

Previously if you said you wanted to downsample, it would just use
your duration (lookback) window as the downsample period.
This lets you specify either.

Change-Id: Ic03ea56d325140b33248eff335818159094bd43c
Reviewed-by: Tony Landells <tony@stumbleupon.com>
Reviewed-by: Benoit Sigoure <tsuna@stumbleupon.com>
Tested-by: Dave Barr <barr@stumbleupon.com>
Don't block mouse click events on the image.

Doing so means that when the focus is on one of the text boxes,
clicking on the image doesn't remove the focus from the text box,
which is annoying as change of focus is often used to trigger an
update of the graph.

Also increase the minimum selection size to avoid unintentional
drag-to-zoom events, which happen easily with a touch pad.
Upgrade suasync to 1.3.1.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Update javassist's version to match what's in Maven.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Fix make distcheck by adding a missing file to Makefile.am.
Provide a pom.xml for Maven users.

This starts to address #103 and closes #134.

Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Finish integration with Maven.

This closes #103.
Improve TSD write throughput by 10x.

This fixes an important performance bug in TSD.  The bug is triggered
when large TCP frames are handled by TSD's telnet-style decoding logic.
TSD is trying to split the input lines, however it was using a Netty
class that exhibits very poor performance for this job.  This due to
the fact Netty's DelimiterBasedFrameDecoder is built to handle multiple
delimiters (e.g. "\n" or "\r\n"), and it would always attempt to match
all delimiters to the input buffer to try to find the smallest match.

So on large input buffers, which is particularly worse when the client
is connected from localhost as the MTU of loopback interfaces tend to
be very large, the code would always attempt to look for a "\r\n" in
the entire input, thereby wasting a great deal of CPU cycles.

This code replaces Netty's DelimiterBasedFrameDecoder with a simpler
decoder that only supports splitting lines on "\n" or "\r\n" and
always works in one pass.  Single-socket throughput has been seen
to increase by as much as 20x, and overall throughput with several
clients contending for CPU time has been seen to increase around 10x.

This closes #120.
Fix check_tsd -v when IPv6 is used.
Fix coding style a bit in tsd_check.

Mostly prevent lines from being longer than 80 columns and remove some
unnecessary cruft when parsing command-line arguments.  This change is
mostly a no-op.
Properly parse floating point values in scientific notations.

They do not always contain a period.  So check also for an 'e'
in lower or upper case.

Bug reported by Paula Keezer.