From charlesreid1

Installing

Prerequisites

PyCairo prerequisite: PyCairo

Installing Graphite

Git checkout

cd git dir

python setup.py build && python setup.py install

Installing Carbon

python setup.py build && python setup.py install

Installing Whisper

python setup.py build && python setup.py install

Setting Things Up

Once you've installed everything, assuming you went with the default installation configuration, graphite will be in /opt/graphite. That includes Graphite web app frontends, Carbon, and Whisper.

Now I'll cover how to get each component running and get simple I/O working.

Setting Up Graphite

I followed these instructions for getting Graphite set up and installed and running and all that:

I installed graphite from source to the default location:

The way to test Graphite is not really to test it on its own, but rather to test it via/with Carbon.

Setting Up Carbon

To get Carbon running, you have to start with some configuration files, described on this page:

Basically, you give some thought to your schema - see this page http://graphite.wikidot.com/getting-your-data-into-graphite for information on what I mean. Decide your time series data naming convention, then decide how much data to gather, at what frequency.

Enter information about your storage schema in your storage-schemas.conf file, located in /opt/graphite/conf/storage-schemas.conf; example:

[dummy]
priority = 100
pattern = dummy
retentions = 1:7200

which will gather data at a frequency of 1 Hz for 2 hours (7200 seconds total).

There are a couple of other files to modify, specifically relay-rules.conf and carbon.conf. For these, I used the examples provided by the installation.

Once you've finished, it's time for the hello world tests.

Hello World

Hello Carbon World

Start

First step is to start Carbon:

/opt/graphite/bin/carbon-cache.py start

If you see some regular expression problems, try fixing your regular expression in your storage-schemas configuration file, in the "pattern" field.

Log Files

Once you've started Carbon, take a look at the log files in

/opt/graphite/storage/log/carbon-cache/

Sending Data to Carbon

The Graphite documentation is pathetic, but here's its description of feeding data to Carbon:

http://graphite.readthedocs.org/en/latest/feeding-carbon.html

It is completely and entirely unclear how you double-check to make sure Carbon has received this data correctly, where the data goes, anything.

If you check the listener log file, you'll see something like this for each piece of data you send to the port Graphite/Carbon is listening to (specified with DESTINATION in carbon.conf file):

25/06/2014 13:48:05 :: MetricPickleReceiver connection with 127.0.0.1:50787 established
25/06/2014 13:48:05 :: MetricPickleReceiver connection with 127.0.0.1:50787 closed cleanly

It would be nice if there were some additional information available, or some description of success or failure with respect to doing something with the data. Is it going in the database? Is the database even running? What happens if it isn't? Who knows.