leveldb based backend for graphite.
You are familiar on how to install and operate graphite in general. If not, have a look at these instructions. The install from source instructions (this one) is what the rest of the document specifically based on.
There is a nice script that provides leveldb extensions for python. It can be installed by using this package
Install the plugin using pip
pip install -git+https://github.com/InMobi/level-tsd.git#egg=pyleveltsd
We require the megacarbon branch of carbon daemon. This is becase no other version permits storage plugins. There is still a small level of change that needs to be done as the plugin autodiscovery mechanism is broken. Hence, you need to use this fork:
pip install -git+https://github.com/InMobi/carbon.git@leveltsd#egg=carbon
Set the storage engine as follows by editing your db.conf
DATABASE = level-tsd
A new graphite web connector is needed to access this new backend. The carbon daemon and the graphite-web deployment need not be on the same host. Hence the finder is a different project
See InMobi/level-tsd-finder for getting the graphite web connector.
(All of these should be turned into issues)
- Make the json RPC port configurable
- Make the binding network interface of the json RPC configurable
- Leveldb tunables (block size, buffer size, cache size, etc. etc.) as configurations
- Flush the batched metrics after a fixed time interval
- Configurable size for write batch