Skip to main content

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 task, and it targets geek 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 use REST (Representational State Transfer) principle to exchange data between agents and server, and server and frontend. All data are formated in JSON format.

Agent is a simple HTTP client that support 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.

Setup

Installation

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

easy_install graphit

Configuration

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

GraphITize installation

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

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

You can host GraphITize on other server than GraphIT, and even run it on your desktop, without web server.

GraphIT implement 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 this latter, remove the “callback” parameter in your URL when you call graphitize().

Using Watchers

Watchers are prefabricated agents for GraphIT. They are distributed with GraphIT.

Watchers needs to be run regulary, you can use a crontask to do that, and you just have to choose an interval (which depend on the need of accuracy on the data).

Some watchers need a specific execution interval. For exemple graphit-vnstat is used to get network trafic speed on a specified interface. If you make a “snapshot” of speed every five minutes, you will have data that will be not representative of average speed of the last five minutes, but just during watcher’s execution.

To prevent this problem, vnstat is executed for a time specified by user (60 seconds by default), and returns trafic speed average for this time.

In this case, you CAN’T execute watcher more than one time by time specified, or many watcher instance will be executed at the same time.

Watchers binaries starts with “graphit-” prefix, and are installed at the same location as graphid binary.

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 have just 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!

Changelog

0.6:
  • ADD: New watchers: graphit-vnstat and graphit-disk.

  • FIX: graphit-mem free information now converted in Mb

  • Code cleanup

0.5:
  • This release introduce “Watchers”. Watchers are littles scripts that uses Watchers framework and allow to submit data to GraphIT daemon (through Python library for GraphIT). They are somehow prefabricated GraphIT agents, distributed with GraphIT, and usable with a common cli interface. Watchers added in this release are graphit-loadavg and graphit-mem. See setup to learn how to use it. More coming soon.

0.4.1:
  • Bugfix release for a bug introduced in 0.4 release. Graphit will now start if index already exists on database.

  • Index will be automatically added if it doesnt exists.

0.4:
  • Graphid database now use index on it database. That really improve response time on query… The modification only concerns new database creation, so, to create index on old database : sqlite3 <path to database> "CREATE INDEX "main"."idx" ON "monitdata" ("date" DESC, "set" ASC, "feed" ASC)" Thanks to Thibault VINCENT for idea.

Metadata

Release files for graphit 0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for graphit 0.6
File Size Uploaded Provenance
graphit-0.6.tar.gz 10.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for graphit 0.6
File Interpreter ABI Platform
graphit-0.6-py2.6.egg Legacy Egg format - - Details

Total release size: 31.8 kB

Release files / graphit-0.6.tar.gz

Download URL graphit-0.6.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
baee8500c3c959ce8a663ff51fb211d65745b5d20bbbb90cd16230b51911184e
BLAKE2b-256 checksum
How to use checksums
54fa2c230dd476a02020797ab82b7c827f73076b98b76d8526d1358303aba3c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / graphit-0.6-py2.6.egg

Download URL graphit-0.6-py2.6.egg
Size 21.1 kB
Tags Egg
SHA-256 checksum
How to use checksums
113ecf4330f296e8458a589bdfd95b22483305ddd8f17587015862d1ed9a0615
BLAKE2b-256 checksum
How to use checksums
3734e67f8b5936e8958bd3ec8e13e7132baead385fbfe7a0081a72c61d87d291
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for graphit 0.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page