A Graphite dashboard for the command line.
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
.gitignore
README.md
Rakefile
TODO.md
casseo.gemspec

README.md

Casseo

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/

Configuration

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

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.blank
  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.blank
  d.metric "custom.api.production.requests.user-errors.per-min", display: "req user err/min"
  d.blank
  d.metric "custom.api.production.requests.latency.avg", display: "req latency"
end

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