A simple interface for sending metrics to Graphite
Project description
graphitesend
============
Easy python bindings to write to Carbon ( Re-write of carbonclient).
Build status
-------------
[![Build Status](https://travis-ci.org/daniellawrence/graphitesend.png)](https://travis-ci.org/daniellawrence/graphitesend)
Blog posts
-----------
[dansysadm.com](http://dansysadm.com/blog/sending_data_to_graphte_from_python.html)
Example
-------
Very basic sending of a metric called metric with a value of 45
````python
>>> import graphitesend
>>> graphitesend.init()
>>> graphitesend.send('metric', 45)
>>> graphitesend.send('metric2', 55)
````
The above would send the following metric to graphite
system.localhostname.metric 45 epoch-time-stamp
system.localhostname.metric2 55 epoch-time-stamp
Cleaning up the interface and using a group of cpu to alter the metric prefix
````python
>>> import graphitesend
>>> g = graphitesend.init(group='cpu')
>>> g.send('metric', 45)
>>> g.send('metric2', 55)
````
The above would send the following metric to graphite
system.localhostname.cpu.metric 45 epoch-time-stamp
system.localhostname.cpu.metric2 55 epoch-time-stamp
Using a different prefix (other then system.hostname)
````python
>>> import graphitesend
>>> g = graphitesend.init(prefix='apache.rc')
>>> g.send('404', 4)
>>> g.send('200', 500)
````
The above would send the following metric to graphite
apache.rc.404 4 epoch-time-stamp
apache.rc.200 500 epoch-time-stamp
Sending a dict()
````python
>>> import graphitesend
>>> g = graphitesend.init()
>>> g.send_dict({'metric': 45, 'metric2': 55})
````
Example: the init()
----------------
Set a metric prefix (Default arg)
````python
>>> g = graphitesend.init('prefix')
>>> print g.send('metric', 1)
sent 34 long message: prefix.metric 1.000000 1365068929
````
set a metric prefix using kwargs
````python
>>> g = graphitesend.init(prefix='prefix')
>>> print g.send('metric', 2)
sent 34 long message: prefix.metric 2.000000 1365068929
````
view the default prefix, hardset systems. then followed by the name of the
host that execute the send().
````python
>>> g = graphitesend.init()
>>> print g.send('metric', 3)
sent 44 long message: systems.<system_name>.metric 3.000000 1365069029
````
Set a suffix, handy if you have a bunch of timers or percentages
````python
>>> g = graphitesend.init(suffix='_ms')
>>> print g.send('metric', 4)
sent 47 long message: systems.<system_name>.metric_ms 4.000000 1365069100
````
set a system_name if your submitting results for a different system
````python
>>> g = graphitesend.init(system_name='othersystem')
>>> print g.send('metric', 5)
sent 47 long message: systems.othersystem.metric 5.000000 1365069100
````
Lowercase all the metric names that are send to the graphite server.
````python
>>> g = graphitesend.init(lowercase_metric_names=True)
>>> print g.send('METRIC', 6)
sent 47 long message: systems.<hostname>.metric 6.000000 1365069100
````
Set a group name, handy if you just parsed iostat and want to prefix all the
metrics with iostat, after its already in the <system_name> directory.
````python
>>> g = graphitesend.init(group='groupname')
>>> print g.send('metric', 6)
sent 54 long message: systems.<system_name>.groupname.metric 6.000000 136506924
````
Connect to a different graphite server
````python
>>> graphitesend.init(graphite_server='graphite.example.com')
````
Connect to a different graphite server port
````python
>>> graphitesend.init(graphite_port=2003)
````
CLI
------------
Just added -- A cli script that allows for anything to send metrics over to
graphite (not just python).
The usage is very simple you need to give the command a metric and a value.
````sh
$ graphitesend name.of.the.metric 666
````
Send more\* then 1 metric and value
````sh
$ graphitesend name.of.the.metric 666
$ graphitesend name.of.the.other_metric 2
````
\* Call it 2 times ;)
Installing
----------
*pip*
````sh
$ pip install graphitesend
````
or
*source*
````sh
$ git clone git://github.com/daniellawrence/graphitesend.git
$ cd graphitesend
$ python ./setup.py install
````
Porcelain Overview
==================
init
-----
Create the module instance of GraphiteSend.
send
-----
Make sure that we have an instance of the GraphiteClient.
Then send the metrics to the graphite server.
send_dict
---------
Make sure that we have an instance of the GraphiteClient.
Then send the metrics to the graphite server.
reset
-----
Disconnect from the graphite server and destroy the module instance.
TCP vs UDP
==========
There is a new branch for UDP support called 'udp and tcp'.
TCP will continue to be the default with UDP as an option
============
Easy python bindings to write to Carbon ( Re-write of carbonclient).
Build status
-------------
[![Build Status](https://travis-ci.org/daniellawrence/graphitesend.png)](https://travis-ci.org/daniellawrence/graphitesend)
Blog posts
-----------
[dansysadm.com](http://dansysadm.com/blog/sending_data_to_graphte_from_python.html)
Example
-------
Very basic sending of a metric called metric with a value of 45
````python
>>> import graphitesend
>>> graphitesend.init()
>>> graphitesend.send('metric', 45)
>>> graphitesend.send('metric2', 55)
````
The above would send the following metric to graphite
system.localhostname.metric 45 epoch-time-stamp
system.localhostname.metric2 55 epoch-time-stamp
Cleaning up the interface and using a group of cpu to alter the metric prefix
````python
>>> import graphitesend
>>> g = graphitesend.init(group='cpu')
>>> g.send('metric', 45)
>>> g.send('metric2', 55)
````
The above would send the following metric to graphite
system.localhostname.cpu.metric 45 epoch-time-stamp
system.localhostname.cpu.metric2 55 epoch-time-stamp
Using a different prefix (other then system.hostname)
````python
>>> import graphitesend
>>> g = graphitesend.init(prefix='apache.rc')
>>> g.send('404', 4)
>>> g.send('200', 500)
````
The above would send the following metric to graphite
apache.rc.404 4 epoch-time-stamp
apache.rc.200 500 epoch-time-stamp
Sending a dict()
````python
>>> import graphitesend
>>> g = graphitesend.init()
>>> g.send_dict({'metric': 45, 'metric2': 55})
````
Example: the init()
----------------
Set a metric prefix (Default arg)
````python
>>> g = graphitesend.init('prefix')
>>> print g.send('metric', 1)
sent 34 long message: prefix.metric 1.000000 1365068929
````
set a metric prefix using kwargs
````python
>>> g = graphitesend.init(prefix='prefix')
>>> print g.send('metric', 2)
sent 34 long message: prefix.metric 2.000000 1365068929
````
view the default prefix, hardset systems. then followed by the name of the
host that execute the send().
````python
>>> g = graphitesend.init()
>>> print g.send('metric', 3)
sent 44 long message: systems.<system_name>.metric 3.000000 1365069029
````
Set a suffix, handy if you have a bunch of timers or percentages
````python
>>> g = graphitesend.init(suffix='_ms')
>>> print g.send('metric', 4)
sent 47 long message: systems.<system_name>.metric_ms 4.000000 1365069100
````
set a system_name if your submitting results for a different system
````python
>>> g = graphitesend.init(system_name='othersystem')
>>> print g.send('metric', 5)
sent 47 long message: systems.othersystem.metric 5.000000 1365069100
````
Lowercase all the metric names that are send to the graphite server.
````python
>>> g = graphitesend.init(lowercase_metric_names=True)
>>> print g.send('METRIC', 6)
sent 47 long message: systems.<hostname>.metric 6.000000 1365069100
````
Set a group name, handy if you just parsed iostat and want to prefix all the
metrics with iostat, after its already in the <system_name> directory.
````python
>>> g = graphitesend.init(group='groupname')
>>> print g.send('metric', 6)
sent 54 long message: systems.<system_name>.groupname.metric 6.000000 136506924
````
Connect to a different graphite server
````python
>>> graphitesend.init(graphite_server='graphite.example.com')
````
Connect to a different graphite server port
````python
>>> graphitesend.init(graphite_port=2003)
````
CLI
------------
Just added -- A cli script that allows for anything to send metrics over to
graphite (not just python).
The usage is very simple you need to give the command a metric and a value.
````sh
$ graphitesend name.of.the.metric 666
````
Send more\* then 1 metric and value
````sh
$ graphitesend name.of.the.metric 666
$ graphitesend name.of.the.other_metric 2
````
\* Call it 2 times ;)
Installing
----------
*pip*
````sh
$ pip install graphitesend
````
or
*source*
````sh
$ git clone git://github.com/daniellawrence/graphitesend.git
$ cd graphitesend
$ python ./setup.py install
````
Porcelain Overview
==================
init
-----
Create the module instance of GraphiteSend.
send
-----
Make sure that we have an instance of the GraphiteClient.
Then send the metrics to the graphite server.
send_dict
---------
Make sure that we have an instance of the GraphiteClient.
Then send the metrics to the graphite server.
reset
-----
Disconnect from the graphite server and destroy the module instance.
TCP vs UDP
==========
There is a new branch for UDP support called 'udp and tcp'.
TCP will continue to be the default with UDP as an option
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
graphitesend-0.0.5.tar.gz
(4.3 kB
view hashes)