Erlang TSDB
Erlang Makefile Python Shell
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
rel
src
test
.gitignore
.travis.yml
Makefile
README.md
erlang.mk
etsdb.config
etsdb_2.config
etsdb_3.config
pkgx
pkgx.config
relx
relx.config.script
sender.py

README.md

#ETSDB

An Erlang Time Series Database built with LevelDB and Riak Core.

Developing

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.

Querying

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)

Making a Release

On ubuntu

apt-get install erlang libleveldb-dev libsnappy-dev build-essential
gem install fpm --no-rdoc
make deps apps release package

Installing the release

Build a package on another machine with the same OS/architecture. Install that package on another machine, it will include Erlang and ETSDB.

Running

# /etc/init.d/etsdb start

Configuration

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}]}].