A spark line for graphite, Turns graphite data into a cli sparkline : █ ▄ ▆ ▇ ▄
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
graphitespark
.env
.gitignore
.travis.yml
LICENSE
README.md
requirements.txt
setup.py
tox.ini

README.md

graphite-spark

Build Status Coverage Status

A sparkline for graphite data: ▄ ▄ ▆ ▇ ▄ ▄ ▃ ▃

When to use

Its 3am you have just ssh'd to a server and due to performance problems. The Load seems high, but you look after 2000 servers... Is this a normal load? You need to know what is ''high'' for this system?

A quick graphitespark -l and you can see a 24 hour history of the loadavg for this system.

You know now that is a normal loadavg and you can investigate something else.

Usage

usage: graphitespark [-h] [-f filesystem] [-l] [-c custom graphite path]

Display a sparkline of this or other servers

optional arguments:

-h, --help            show this help message and exit
-f filesystem, --filesystem filesystem
-l, --loadavg
-c custom graphite path, --custom custom graphite path

Installation

The argparse module is a required dependency. If not already installed:

% pip install argparse

To install graphite-spark system wide:

% git clone https://github.com/daniellawrence/graphite-spark.git
% cd graphite-spark
% python setup.py install

Then, just execute:

% /usr/bin/graphitespark

To run standalone without installation:

% git clone https://github.com/daniellawrence/graphite-spark.git
% cd graphite-spark
% PYTHONPATH=src bin/graphitespark

Example - Check Load average

Checking the load averages of the current system that you are logged into straight from the command line!

server 1 % graphitespark -l
-24hours@1h blocks
1min load avg.
█ ▅ ▆ ▄ ▄ ▆ ▆ ▄ ▃ ▃ ▃ ▂ ▃ ▃ ▂ ▃ ▃ ▃ ▃ ▃ ▄ ▅ ▃ ▃ 
Max: 2.95       Min: 0.6        First: 2.95     Last: 0.82

-24hours@1h blocks
5min load avg.
█ ▄ ▄ ▄ ▄ ▆ ▇ ▄ ▄ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ 
Max: 2.26       Min: 0.54       First: 2.26     Last: 0.76

-24hours@1h blocks
15min load avg.
█ ▆ ▄ ▄ ▅ ▇ ▇ ▆ ▄ ▄ ▄ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ ▃ 
Max: 1.82       Min: 0.53       First: 1.82     Last: 0.59

Example - filesystem capacity

Checking the the filesystem capacity of a local filesystem on the current host, from the data in a remote graphite server.

server 1 % graphitespark -f /var/tmp
Filesystem capacity: /var
-24hours@1h blocks
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ 
Max: 11.0       Min: 11.0       First: 11.0     Last: 11.0

As you can see the script was able to work out the mount point of the filesystem so that the data was still found in the graphite system.

Example - custom graphs

Checking anything that you want from any system that you are logged into. As the data is in the remote graphite system.

server 1 % graphitespark -c 'systems.s.server2.loadavg.15min'
-24hours@1h blocks
▅ ▅ ▅ ▄ █ █ ▅ ▄ ▂ ▄ ▃ ▂ ▂ ▂ ▂ ▂ ▂ ▂ ▃ ▃ ▃ ▂ ▃ ▂ ▂ 
Max: 15.03      Min: 1.73       First: 9.07     Last: 1.73