GraphIT ?
=========

GraphIT is a really simple monitoring solution. Unlike other
solutions like Cacti, GraphIT is very quick to setup, and very easy
to use. On the other side, GraphIT is not designed for large monitoring
tasks, and it targets geeks who want to monitor their server in a simple
way.

GraphIT is client/server based, uses SQLite as database backend and
HTTP as transport protocol. It uses REST (Representational State
Transfer) principle to exchange data between agents and server, and
between server and frontend. All datas are formated in JSON format.

Agent is a simple HTTP client that supports POST request. A Python
library is provided to facilitate agents creation in Python.

Frontend is a simple web page with JavaScript that queries GraphIT
server with Ajax. Charts are rendered with flot JS library.

You can see a running demo at http://burger.tecknet.org/#monitoring .

Setup
=====

Installation
------------

The installation is *really* simple, you just have to type the following
command (after installing setuptools package on your distro):

``easy_install graphit``

Configuration
-------------

Configuration is exclusively made with the help of ``graphitd`` command
parameters. Type ``graphitd --help`` to get a list of available
parameters.

GraphITize installation
-----------------------

GraphITize is the JavaScript/HTML frontend of GraphIT. Download the
latest version of GraphITize from 
http://idevelop.org/p/graphit/downloads/ 
Uncompress it on your web server.

Rely on provided index.html to understand how GraphITize works (it's so
simple !!).

You can host GraphITize on another server than the one hosting
GraphIT, and even run it on your desktop, without a web server.

GraphIT implements ``JSONP`` and ``OPTIONS`` http method for Ajax Cross domain.
JSONP is used by default because OPTIONS http method is only implemented
on recent Firefox and Webkit versions. To use the latter, remove the
"callback" parameter in your URL when you call ``graphitize()``.

Agent creation
==============

Agent Python library is installed with server package
(see Setup/`Installation`_). To use it, you have to import
``GraphItAgent`` in ``graphit.client`` :

>>> from graphit.client import GraphItAgent  

Then, you just need to instanciate it :

>>> agent = GraphItAgent('http://my-graphit-server/', login='graphit', passwd='secret')  

Finally, to submit monitoring data use add_value method :

>>> agent.add_value(set='df', feed='sda', value=42, unit='%')  

It's that easy!
