Old Graphite: Difference between revisions
From charlesreid1
| Line 69: | Line 69: | ||
=Hello World= | =Hello World= | ||
==Hello Carbon World== | |||
===Start=== | |||
First step is to start Carbon: | |||
<pre> | |||
/opt/graphite/bin/carbon-cache.py start | |||
</pre> | |||
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 | |||
<pre> | |||
/opt/graphite/storage/log/carbon-cache/ | |||
</pre> | |||
===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): | |||
<pre> | |||
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 | |||
</pre> | |||
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. | |||
Revision as of 20:54, 25 June 2014
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.