Graphite renders graphs using the Cairo graphics library. This adds dependencies on several graphics-related libraries not typically found on a server. If you’re installing from source you can use the check-dependencies.py script to see if the dependencies have been met or not.
Basic Graphite requirements:
Python 2.4 and 2.5 have extra requirements:
Additionally, the Graphite webapp and Carbon require the whisper database library which is part of the Graphite project.
There are also several other dependencies required for additional features:
See also
On some systems it is necessary to install fonts for Cairo to use. If the webapp is running but all graphs return as broken images, this may be why.
Most current Linux distributions have all of the requirements available in the base packages. RHEL based distributions may require the EPEL repository for requirements. Python module dependencies can be install with pip rather than system packages if desired or if using a Python version that differs from the system default. Some modules (such as Cairo) may require library development headers to be available.
Graphite defaults to an installation layout that puts the entire install in its own directory: /opt/graphite
Whisper is installed Python’s system-wide site-packages directory with Whisper’s utilities installed in the bin dir of the system’s default prefix (generally /usr/bin/).
Carbon and Graphite-web are installed in /opt/graphite/ with the following layout:
bin/
conf/
lib/
Carbon PYTHONPATH
storage/
log
Log directory for Carbon and Graphite-web
rrd
Location for RRD files to be read
whisper
Location for Whisper data files to be stored and read
webapp/
Graphite-web PYTHONPATH
graphite/
Location of manage.py and local_settings.py
content/
Graphite-web static content directory
Several installation options exist:
If you run into any issues with Graphite, please to post a question to our Questions forum on Launchpad or join us on IRC in #graphite on FreeNode