Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Real-time dashboard for Graphite
branch: master

This branch is 224 commits behind obfuscurity:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
config
public
views
Gemfile
Gemfile.lock
LICENSE
Procfile
README.md
config.ru
web.rb

README.md

Tasseo

Reading the tea leaves.

graph

Overview

Tasseo is a lightweight, easily configurable, real-time dashboard for Graphite events. Charts are refreshed every two seconds and provide a heads-up view of the most current value.

Configuration

Examples

Creating your own dashboard is as simple as dropping a JSON file into the public/d directory, committing it and pushing it to the staging or production Tasseo apps. The name of your file (minus the .js suffix) becomes the name of your dashboard. Here's a sample (also found here):

var metrics =
[
  {
    "alias": "pulse-events-per-second",
    "target": "pulse.pulse-events-per-second",
    "warning": 100,
    "critical": 500
  }
];

The target attribute is the only mandatory field. As you might expect, each dashboard can contain an arbitrary list of different Graphite metrics. Another perfectly valid example:

var metrics =
[
  { "target": "pulse.hermes-econns-apps-per-minute" },
  { "target": "pulse.hermes-econns-per-minute" },
  { "target": "pulse.hermes-elevated-route-lookups-per-minute" },
  { "target": "pulse.hermes-errors-per-minute" },
  { "target": "pulse.hermes-h10-per-minute" },
  { "target": "pulse.hermes-h11-per-minute" },
  { "target": "pulse.hermes-h12-per-minute" },
  { "target": "pulse.hermes-h13-per-minute" },
  { "target": "pulse.hermes-h14-per-minute" },
  { "target": "pulse.hermes-h18-per-minute" },
  { "target": "pulse.hermes-h99-per-minute" }
];

Thresholds

warning and critical thresholds are optional. If defined, the color of the graph will change when the current value exceeds the respective threshold. If the thresholds are reversed (i.e. critical is lower than warning), Tasseo understands that an inverse threshold is expected.

Dashboard Attributes

  • refresh - Refresh interval for charts, in milliseconds. (optional, defaults to 2000)

Metric Attributes

  • alias - Short name for the metric. (optional)
  • target - Full target name as used by Graphite. Can contain a combination of chained functions. (mandatory)
  • warning - Warning threshold. Exceeding this value causes the graph to turn yellow. (optional)
  • critical - Critical threshold. Exceeding this value causes the graph to turn red. (optional)
  • unit - Arbitrary string that can be used to designate a unit value; for example, "Mbps". (optional)
  • period - Range (in minutes) of data to query from Graphite. (optional, defaults to 5)

Deployment

The only environment variable is GRAPHITE_URL. This should be set to the base URL of your Graphite composer (e.g. https://graphite.yourdomain.com).

Development

$ rvm use 1.9.2
$ bundle install
$ export GRAPHITE_URL=...
$ foreman start
$ open http://127.0.0.1:5000

Production

$ export DEPLOY=production/staging/you
$ heroku create -r $DEPLOY -s cedar tasseo-$DEPLOY
$ heroku config:set -r $DEPLOY GRAPHITE_URL=...
$ git push $DEPLOY master
$ heroku scale -r $DEPLOY web=1
$ heroku open -r $DEPLOY

License

Tasseo is distributed under a 3-clause BSD license. Third-party software libraries included with this project are distributed under their respective licenses.

Something went wrong with that request. Please try again.