Thursday, January 5, 2012

Install Graphite On A SmartMachine (SmartOS Zone)

I've been hearing a lot of good things about Graphite lately. So I thought I'd give it a try on a SmartOS Zone (SmartMachine?). I had one heck of a time installing it. Here's how I did it.

First, for some reason I had to use the 32bit version SmartOS 1.4.7. If you try the 64bit version, the first error you get:


Checking for header Python.h : Could not find the python development headers


But this appears to be a red herring and the real issue is related to 32 vs 64bit issues. Investigating this helped me understand why people don't like waf. Just use the 32bit zone and safe some pain.


Install all the dependencies that are available via pkgin:

pkgin install apache gcc-compiler scmgit python27 pkg-config cairo xproto renderproto-0.11 kbproto py27-setuptools py27-django py27-twisted ap22-py27-wsgi

I ran into a problem where it said apache was missing when I tried to download it. This was fixed by doing 'pkgin -f update'. The '-f' was necessary.

Dependency - pycairo

Install pycairo, we need py2cairo as its for python 2.7:


git clone git://git.cairographics.org/git/py2cairo
cd py2cairo
PREFIX="/opt/local" ./waf configure
./waf build
./waf install


Install Graphite components 'by hand'. Download, untar and run 'python setup.py install' in each of the resulting directories:

http://pypi.python.org/pypi/carbon
http://pypi.python.org/pypi/graphite-web
http://pypi.python.org/pypi/whisper

Install django-tagging by hand. Download, untar and run 'python setup.py install'.
http://code.google.com/p/django-tagging/downloads/list


Inside graphite-web run:


./check-dependencies.py


You might see warning, but there shouldn't see any FATAL messages.

(Under Construction) You still need to:
- copy and edit the apache config
- copy the .wsgi example into place
- copy the carbon.conf.example and the storage-schemas.conf.example
- patch the settings.py file so that it doesn't prepend the third party path