Split "connectionmgr.connections" stat into "type=open" as a guange showing the
number of open connections and "type=total" to show the total number of
connection since start.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Force utf8 encoding in the javac args

- to avoid errors like "error: unmappable character for encoding ASCII" in some edge cases

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add UniqueId.maxPossibleId() to determine the max ID

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add UniqueId.getUsedUIDs() to fetch all of the max UIDs in one call
asynchronously as per isavin's work on #153

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Modify TSDB.collectStats() to return the used and available UIDs as per isavin's
work on #153

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Fix GUI version tab display that wasn't showing information due to Jackson
outputting the timestamp as a string.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add shutdown calls for plugins when gracefully closing the TSD

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add RPC Plugin interface to let users implement their own RPC protocols such as
Protobuf, Thrift, Avro, Memcache, whatever.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Modify TSDB.initializePlugins to load RPC plugins on startup only when the
calling tool code specifies that RPCs should be initialized, e.g. the TSDMain
tool. Other tools may want the search or RT plugins but not the RPCs, e.g. the
UidManager tool.
Users can specify multiple RPC plugins. They are initialized and stored in a
list. Then on shutdown, the list is iterated and each plugin gracefully
shutdown.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add DataPoints.getTSUIDs() to fetch a list of TSUIDs for each time series
in a span group. Can be displayed in the /api/query output.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add "show_tsuids" parameter to /api/query to output the TSUIDs with the data
points when the user requests it.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Split ConnectionManager exception types into unknown, closed, reset and timeout
for greater detail into problems

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add "tsd.storage.hbase.tree_table" config parameter

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add tree table variable, check and getter to TSDB

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Modify all tree related code to use the new tree table instead of forcing
multiple rows of data in the UID table. This will improve scan performance
across TSUIDs

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add tsdb-tree to the create_table.sh script

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add "store_failures" option to trees so that we can avoid writing potentially
massively wide rows unless the user explicitly wants to. Collisions and not
matched rows will still be logged.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Fix TreeSync error where it was scanning the tree table instead of the UID table
Fix suppressed exception in TreeSync where the Deferreds were swallowing HBase
exceptions and running forever.

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Add bloomfilter option to the UID table in create_table.sh

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>
Split the TreeSync CLI command into threads for quicker completion.
Modify TreeSync to log exceptions on particular TSUIDs instead of killing the
entire thread.
Modify "uid fsck" CLI to skip meta data entries

Signed-off-by: Chris Larsen <clarsen@euphoriaaudio.com>