Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Status Board to Graphite bridge
branch: master

Merge pull request #1 from fromonesrc/master

Allow specifying custom refresh rate
latest commit 8a0e284181
Jason Dixon authored
Failed to load latest commit information.
images newer screenshot showing times
.gitignore gitignore
Gemfile duh, nevermind
LICENSE license
Procfile start-up stuff No wrapping
Rakefile for whenever we add tests
app.rb Merge pull request #1 from fromonesrc/master simplify




Mater (short for maître d') provides a translation service (and rudimentary API) between the Status Board JSON format for Graphs, and the Graphite API.


Changing the URL

Take the Graphite URL that you want to view on Status Board and replace its Graphite scheme/host/port (e.g. with your Mater URL counterparts (e.g. Mater will proxy the requested URI to Graphite and reformat the response for the Status Board client.

API Overview

Each Graphite JSON object (comprised of a target and datapoints) response is treated as a Status Board datasequence. It will use the target name for the datasequence title, so you'll typically want to apply a Graphite alias for something user-friendly. Set your Graphite title param and it will bubble up to your Status Board graph title. Specify a custom refresh rate by setting the refresh parameter in the URL.

Sample URI:


Sample Response:

  "graph" : {
    "title" : "User CPU",
    "refreshEveryNSeconds" : 30,
    "datasequences" : [
        "title" : "cpu-0",
        "datapoints" : [
          { "title" : "02:37", "value" : 0 },
          { "title" : "02:37", "value" : 0 },
          { "title" : "02:37", "value" : 1 },
          { "title" : "02:37", "value" : 0 },
          { "title" : "02:38", "value" : 0 },
        "title" : "cpu-1",
        "datapoints" : [
          { "title" : "02:37", "value" : 0 },
          { "title" : "02:37", "value" : 0 },
          { "title" : "02:37", "value" : 0 },
          { "title" : "02:37", "value" : 0 },
          { "title" : "02:38", "value" : 0 },


The only required environment variable is GRAPHITE_URL. This should be set to the base URL of your Graphite composer (e.g. If your server requires Basic Auth, add these to your GRAPHITE_URL (e.g.

Mater supports optional Basic Authentication through Rack::Auth::Basic. Simply set MATER_AUTH to your colon-delimited credentials (e.g. user:test).


$ bundle install
$ export GRAPHITE_URL=...
$ export MATER_AUTH=... (optional)
$ foreman start


$ export DEPLOY=production/staging/you
$ heroku create -r $DEPLOY mater-$DEPLOY
$ heroku config:set -r $DEPLOY GRAPHITE_URL=...
$ heroku config:set -r $DEPLOY MATER_AUTH=... (optional)
$ git push $DEPLOY master


Status Board is still fairly dumb in its ability to process data. For example, it won't accept float values so we have to convert our data to whole numbers. As I uncover other oddities they will be mentioned here.


Mater is distributed under the MIT license.

Something went wrong with that request. Please try again.