#ETSDB
An Erlang Time Series Database built with LevelDB and Riak Core.
Install erlang R16 (limited by Riak Core)
$ make shell_1
Brings you into a shell
You can now send metrics in via the graphite/carbon protocol to port 2003: http://graphite.readthedocs.org/en/1.0/feeding-carbon.html
To bring up a new node on the same box:
$ make shell_2
When in the shell you can join it to the previous shell with
(etsdb_2@127.0.0.1)1> riak_core:join("etsdb@127.0.0.1").
Which will move the appropriate vnodes across.
To get the list of metrics available:
http://localhost:8080/metrics
To get data for a metric
http://localhost:8080/metrics/{metric}?from={timestamp}&until={timestamp}
Other fields available
?bucket_size=How many seconds of data to aggregate into a single datapoint returned
?aggregation=How to aggregate the data points (min/avg)
On ubuntu
apt-get install erlang libleveldb-dev libsnappy-dev build-essential
gem install fpm --no-rdoc
make deps apps release package
Build a package on another machine with the same OS/architecture. Install that package on another machine, it will include Erlang and ETSDB.
# /etc/init.d/etsdb start
The package will install a /etc/etsdb/etsdb.config
. Follow the contents
of rel/sys.config
for details`
You may one to set the carbon port (which this defaults to 2008) to 2003, the standard port. This would look like
[{etsdb, [{graphite_port, 2003}]}].