A Graphite dashboard for the command line.
Switch branches/tags
Nothing to show
Clone or download
Latest commit db41f29 Jul 20, 2012
Failed to load latest commit information.
bin Standalone working properly Jul 1, 2012
lib Bumping version Jul 20, 2012
.gitignore Standalone working properly Jul 1, 2012
README.md Toggle compressed chart on/off Jul 1, 2012
Rakefile Reorg + comments Jul 1, 2012
TODO.md Updating @todo Jul 1, 2012
casseo.gemspec Gemspec Jul 1, 2012



A Graphite dashboard viewable without ever leaving the command line. Configuration and concept very similar to Tasseo.

Install via Rubygems:

gem install casseo

Or if you're really concerned about Rubygems' speed, clone the reposistory and create a standalone version (Ruby 1.9 satisfies all of Casseo's dependencies):

git clone https://github.com/brandur/casseo.git
cd casseo
rake standalone
mv casseo ~/bin/


Casseo expects to be able to find your Graphite credentials at ~/.casseorc:

echo '{ graphite_auth: "graphite:my_secret_api_key", graphite_url: "https://graphite.example.com:8080" }' > ~/.casseorc
chmod 600 ~/.casseorc

Other allowed configuration options are:

  • compressed_chart: whether to include a space between chart symbols (default: false); see also c shortcut
  • dashboard_default: name of the dashboard to load if none is specified (default: home)
  • decimal_precision: floating point precision to show (default: 1); see also p shortcut
  • interval: Graphite update interval in seconds (default: 2)
  • period_default: default period of data to show (default: 5 minutes)


Dashboards are configured via simple Ruby in a manner reminiscent of Tasseo. All *.rb files in ~/.casseo/dashboards or in any of its subdirectories are loaded automatically. Dashboards are assigned names so that they can be referenced and opened like so:

casseo home

An example dashboard (save to ~/.casseo/dashboards/home.rb):

Casseo::Dashboard.define(:api) do |d|
  d.metric "custom.api.production.requests.per-sec", display: "req/sec"
  d.metric "custom.api.production.requests.500.per-min", display: "req 500/min"
  d.metric "custom.api.production.requests.502.per-min", display: "req 502/min"
  d.metric "custom.api.production.requests.503.per-min", display: "req 503/min"
  d.metric "custom.api.production.requests.504.per-min", display: "req 504/min"
  d.metric "custom.api.production.requests.user-errors.per-min", display: "req user err/min"
  d.metric "custom.api.production.requests.latency.avg", display: "req latency"

Get a list of all known dashboards:

casseo --list

Casseo also takes a file as its first parameter:

casseo ~/.casseo/dashboards/home.rb

Key Bindings

For now, there are no options on key bindings. Here's what you get:

  • c toggle compressed chart
  • j page down
  • k page up
  • m toggle max value column
  • p show more floating point precision
  • q quit
  • 1 5 minute range
  • 2 60 minute range
  • 3 3 hour range
  • 4 24 hour range
  • 5 7 day range